概要
シーダクラスを使って、DBのテーブルに入れるテストデータを作成します。
実践
シーダファイル作成
以下のように、artisanコマンドでシーダファイル作成します。
公式ドキュメントによると、ファイル名は特に規定はないそうで、わかりやすい規則に従って名前を決めるようにとのこと。
公式ドキュメントの5系までは、テーブル名複数系、6系からはテーブル名単数系となっているので、
どちらかに合わせればいいかと思います。
php artisan make:seeder EmployeesTableSeeder
database\seedersに、デフォルトのシーダファイルが作成されます。
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class EmployeesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
}
}
シーダファイルの編集
public function run()
{
DB::table('employees')->insert([
'name' => 'テスト太郎',
'age' => 20,
]);
}
作成したシーダファイルのrunメソッドに、シーダ実行時のINSERT処理を書きます。
public function run()
{
$this->call([
EmployeesTableSeeder::class
]);
}
デフォルトで入っている、database\seeders\DatabaseSeeder.phpのrunメソッドで、シーダ実行時に行う処理のクラスをcallメソッドで呼びます。
シーダ処理実行
php artisan db:seed
上記のコマンドで、DatabaseSeeder.phpのrunメソッドで登録されているシーダクラスの処理を実行します。
個別に実行したい場合は、以下のようにオプション付けて実行できます。
php artisan db:seed --class=EmployeesTableSeeder
実行完了すると、テーブルにテストデータがINSERTされます。