【Laravel5.8】テーブルにダミーデータを入れたい
テスト運用時に
「初めからテーブルにダミーデータを入っていたらなあ…」
と思いつつ、これまで長らく1つ1つわざわざデータを入れていました。
しかし、LaravelにはSeederという優れた機能があります。
以下はSeederの使い方の一例。
Seederを作成
$ php artisan make:seeder CategoryTableSeeder
database/seeds/CategoryTableSeeder.phpに書き込み
public function run() { $datas = [ ['category' => '小説'], ['category' => 'ノンフィクション'], ['category' => 'ビジネス'], ['category' => '漫画'], ['category' => 'その他'], ]; DB::table('categories')->insert($datas); }
Seederを実行
$ php artisan db:seed --class=CategoryTableSeeder
categoriesテーブルを確認
mysql> select * from categories;
+----+--------------------------+------------+------------+
| id | category | created_at | updated_at |
+----+--------------------------+------------+------------+
| 1 | 小説 | NULL | NULL |
| 2 | ノンフィクション | NULL | NULL |
| 3 | ビジネス | NULL | NULL |
| 4 | 漫画 | NULL | NULL |
| 5 | その他 | NULL | NULL |
+----+--------------------------+------------+------------+
5 rows in set (0.00 sec)
ちゃんと入っていました!
ちなみにmigrateと同時にSeederを起動するには、
php artisan migrate:refresh --seed
こんな感じでOK。
全てのSeederを起動するには、
php artisan db:seed
こんな感じで。