本記事では、
Laravelのシーディングの実行手順について解説していく。
(Laravel) シーディングとは
laravelのシーディングとは、マイグレーションでテーブルを作成した後、
初期のレコードを自動的に作成する機能のことだ

https://readouble.com/laravel/8.x/ja/seeding.html
シーディングの実行手順
では具体的に、
シーディングを実行する手順を紹介していく。
シーディングを実行する手順は概ね以下の様なステップになる。
- シーダーファイルの作成
- シーダーファイルの登録
- シーディングを実行する
①シーダーファイルの作成
シーディングは最終的に、
シーダーファイルと言うファイルを元に実行することになる。
なのでまずは、シーダーファイルを作成する必要がある。
シーダーファイルの作成は、以下のコマンドで行う。
#シーダーファイルの作成
php artisan make:seeder ファイル名
シーダーファイル配置先
作成したシーダーファイルは「database/seeds」に格納される。
database/seeds
シーダーファイルに登録レコードを記述していく
次に、
作成したシーダーファイルに、シーディングによって登録したいレコード情報を記述していく。
シーダーファイルのデフォルトの記述は下記のようになっている。
<?php
use Illuminate\Database\Seeder;
class PeopleTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
}
}
上記、runメソッドの中に、登録するレコード作成の情報を記述していく。
public function run()
{
$param = [
‘name’ => ‘taro’,
‘age’ => ’12’,
];
DB::table(‘people’)->insert($param);
}
DBクラスやクエリビルダを使用して、インサートの処理を記述すれば良いだろう。
②シーダーファイルの登録
シーダーファイルの作成ができたら、
シーダーファイルが実行されるように登録する必要がある。
シーダーファイルの登録には、database/seeds/に存在する、
DatabaseSeeder.php を編集する。
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(PeopleTableSeeder::class); //この行を追加
}
}
runメソッド内に、作成したシーダーファイルを登録する行を追加する。
seederクラスのcallメソッドを呼び出し、
引数に、作成したシーダークラスを指定する。
$this->call(シーダークラス::class);
上記により、
シーディング実行時、指定したクラスのrunメソッドが呼び出され、シーディングが実行される、という流れになる。
③シーディングを実行する
最後に、シーディングを実行する。
シーディングを実行するコマンドは下記
phpartisan db:seed
上記コマンドで、DatabaseSeeder.phpのrunメソッドが実行され、
登録されてあるシーダーファイルのrunが続けて実行される。
関連記事
https://qiita.com/gone0021/items/fe2e9deffddf8b4b0114
https://readouble.com/laravel/8.x/ja/seeding.html