Laravel Seeder
DBにダミーデータを作成
php artisan make:seeder AdminSeeder
php artisan make:seeder OwnerSeeder
以下database/seeders
直下に生成
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * Seed the application's database. * * @return void */ public function run() { //DatabaseSeederクラス内で、callメソッドを使用して追加したシードクラスを実行する // \App\Models\User::factory(10)->create(); $this->call([ AdminSeeder::class, OwnerSeeder::class, ]); } }
DBファサードのinsertで連想配列で追加
パスワードがあればHashファサードも使う
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; //クエリビルダ use Illuminate\Support\Facades\DB; //暗号化 use Illuminate\Support\Facades\Hash; class AdminSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { //DBファサード::テーブル名→insertでダミーデータ登録 DB::table('admins')->insert([ 'name' => 'test', 'email' => 'test@test.com', //Hashファサードで暗号化 'password' => Hash::make('qwer1234'), 'created_at' => '2022/11/22 23:30:30' ]); } }
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; class OwnerSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { DB::table('owners')->insert([ [ 'name' => 'test1', 'email' => 'test1@test.com', 'password' => Hash::make('qwer1234'), 'created_at' => '2022/11/22 23:30:30' ], [ 'name' => 'test2', 'email' => 'test2@test.com', 'password' => Hash::make('qwer1234'), 'created_at' => '2022/11/22 23:30:30' ], [ 'name' => 'test3', 'email' => 'test3@test.com', 'password' => Hash::make('qwer1234'), 'created_at' => '2022/11/22 23:30:30' ], ]); } }
シーダーの実行
$ php artisan migrate:refresh --seed
down()を実行後up()を実行
→ロールバックで全てのテーブルが削除され、migrateされたあとにseederが実行される。