DBのテーブルを作成する。
SymfonyやRailsと同じようにMigrationを行ってデータベース管理をする。tasksテーブルを作成するためのMigrationの雛形を作成する。
$ php artisan make:migration create_tasks_table --create=tasks Created Migration: 2016_03_10_084136_create_tasks_tableartisanの使用方法についてはこんな感じ。
$ php artisan make:migration <Migration File Name> --create=<Table Name>これを実行するとProject/database/migrations配下に2016_03_10_084136_create_tasks_table.phpというようなファイルが作成される。中身はこんな感じ。
increments('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('tasks'); } }レコードのIDとタイムスタンプのカラムがデフォルトで設定されているので、これにタスク名を格納するためのカラムを追加で設定する。こんな感じ。ハイライト部分が追記した部分。
public function up() { Schema::create('tasks', function (Blueprint $table) { $table->increments('id'); $table->string('name'); $table->timestamps(); }); }このMigrationを実行する前に。やっておく事が2つ。
- データベースの作成
- .envとconfig/database.phpへのデータベース設定
データベース設定はユーザはめんどくさいのでrootを使った。.envとconfig/database.phpに両方設定しておく必要があるが、.envは開発用、.envに設定がない場合はconfig/database.phpの値が利用される。.envに設定されている値がなければconfig配下の設定ファイルの値が利用される。
DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=Laravel_tutorial DB_USERNAME=root DB_PASSWORD=password
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'Laravel_tutorial'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', 'password'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ],これが終わったらようやくMigrateできる。
php artisan migrate Migration table created successfully. Migrated: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_100000_create_password_resets_table Migrated: 2016_03_10_084136_create_tasks_tableMySQLでデータベースLaravel_tutorialにtasksテーブルが出来ているかみてみる。
mysql> show tables; +----------------------------+ | Tables_in_Laravel_tutorial | +----------------------------+ | migrations | | password_resets | | tasks | | users | +----------------------------+ 4 rows in set (0.00 sec) mysql> desc tasks; +------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | created_at | timestamp | YES | | NULL | | | updated_at | timestamp | YES | | NULL | | +------------+------------------+------+-----+---------+----------------+ 4 rows in set (0.15 sec)出来ているのを確認したらテーブルtasksへアクセスするためのモデルTaskを作成する。
$ php artisan make:model Task Model created successfully.テーブル名は複数形、モデルは単数形という暗黙のルールがあるので明示的にtasksテーブルを指定せずともTaskというモデルはtasksテーブルを参照するモデルがapp配下に作成される。
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Task extends Model { // }疲れてきた。
0 件のコメント:
コメントを投稿