Closed4
FactoryとSeeder

Laravel環境でのSeederとFactoryについてまとめる

Factory
- DBに挿入するダミーデータの設計書を定義する
- ダミーデータの生成ロジックを定義しModel単位で実装する
- Seederやテストから呼び出される
Seeder
- DBにデータを挿入する役割
- Factoryや手動で作成したデータをもとにDBにデータを挿入する
- データの個数などを制御する
php artisan db:seed --class=UserSeeder

外部キーをもつダミーデータ作成の場合、SeederかFactoryかどこでリレーションを作成するのか?

Factoryに記述
- Seederに記述すると、新しくSeederを作成するたびにリレーションを定義しなければならいない
- Factoryであれば
'user_id' => User::factory()
のように簡潔にかける
Seederに記述
- 明示的なデータを作成できる
- あるSeederにおける特定のデータを作成する場合に適している
このスクラップは29日前にクローズされました