ファクトリーファイル役割
カラムに挿入する具体的なデータを定義する。
シードファイル役割
ファクトリーで作成したデータの何件DBに挿入するかを決める
DatabaseSeeder.phpファイルの役割
どのデータをシードするかを決める。
モデルファイルのシードでの役割
DBと接続したり、コントローラー使うスコープをここで、定義したりする。
LaravelのModelには命名規則がある。
例えば、テーブル名がusersの場合、Model名はUserになります。
テーブル名を単数形にしたものがModel名となり、自動的にテーブルを操作することができるようになる。
この命名規則は絶対的なものではなく、テーブル名を明示的に指定することもできる。
参考: https://udemy.benesse.co.jp/development/web/laravel-model.html
例
database/seeds/DatabaseSeeder.php
<?phpuseIlluminate\Database\Seeder;classDatabaseSeederextendsSeeder{publicfunctionrun(){// $this->call(UsersTableSeeder::class);$this->call(BookmarksTableSeeder::class);//★ここ}}
database/seeds/BookmarksTableSeeder.php
<?phpuseIlluminate\Database\Seeder;classBookmarksTableSeederextendsSeeder{/**
* Run the database seeds.
*
* @return void
*/publicfunctionrun(){factory(App\Models\Bookmark::class,100)->create();//ここ★}}
DBとカラムを作成し、
php artisan migrate
上記4つをやって、シードコマンドを実行するとカラムにデータが保存される。
php artisan db:seed
おまけ
php artisan make:model Models/Bookmark -a
このコマンドでモデルとファクトリー、テーブルが同時に作成される
テーブルは複数形になっている。