参考図書
シーディングとは
テーブルの用意はマイグレーションでできる。
だけど、レコードは空。初期状態でいくつかダミーレコードを用意しておけると便利。
そのための機能がシーディング
シーディングの手順
- 1.シーダーファイルを作成
- 2.シーダーファイルを編集
- 3.シーディングを実行
1.シーダーファイルを作成
コマンドで作成できる。
php artisan make::seeder シーダーファイル名
database/seeds/フォルダ内に作成される。
2.シーダーファイルを編集
上記コマンドでシーダーファイルを作成されると初期状態で以下のスクリプトが記述されている。
use Illuminate\Database\Seeder;
class PeopleTableSeeder extends Seeder{
public function run(){
}
}
シーディング処理はSeederクラスを継承したクラスとして定義する。
runメソッド内にレコード作成するための処理を用意する。
use Illuminate\Support\Facades\DB;
public function run(){
$param = [
'name' => 'taro',
'mail' => 'taro@yamada.jp',
'age' => 12,
];
DB::table('people')->insert($param);
$param = [
'name' => 'hanako',
'mail' => 'hanako@yamada.jp',
'age' => 34,
];
DB::table('people')->insert($param);
}
シーダーファイルの登録
作成したファイルが実行されるように、DatabaseSeederに登録をする必要がある。
プロジェクトにはデフォルトでDatabaseSeeder.phpというファイルが用意されている。これがシーディングのコマンドで実行されるスクリプト。
なので、このファイルのなかにPeopleTableSeederを呼び出す処理を用意しておく。
use Illuminate\Database\``
class DatabaseSeeder extends Seeder{
public function run(){
$this->call(PeopleTableSeeder::class);
}
}
実行するシーダークラスのclassプロパティを引数にしてcallというメソッドで呼び出す。
これはSeederクラスにあるメソッドで、これにより指定したクラスのrunメソッドが呼び出されシーディング処理が実行されるようになる。
3.シーディングを実行
php artisan db:seed