postsテーブルの中にダミーのデータを入れるフローをメモとして残しておく。
Table of Contents
単一のダミーデータをDBに入れる(seeder)
まずはシーダーファイルを作る
「sail artisan make:seeder シーダー名」
sail artisan make:seeder PostSeeder
PostSeeder.phpに投稿内容を設定
作成したファイルのrunメソッドの中でpostモデル経由で送る内容を設定
※既にuser_id1を持っている既存のユーザーとして投稿したことにできる
public function run(): void
{
\App\Models\Post::create([
'title' => 'シーダーでのテスト',
'body' => 'シーダーとしてテストをしています。',
'user_id' => '1', //useridは1として投稿される
]);
}
設定したら、下記のコマンドを実行
sail artisan db:seed --class=PostSeeder
PostSeeder.phpで設定した内容がDBに反映される。
複数のダミーデータをDBに入れる(factory)
下記コマンドでfactoryファイルを作成。
「sail artisan make:factory モデル名Factory」
sail artisan make:factory PostFactory
runメソッドの中入れたいデータの内容を記載。ここでは内容はランダムで、文字数だけ設定。
public function definition(): array
{
return [
'title'=>fake()->text(10),
'body'=>fake()->text(40),
'user_id'=>\App\Models\User::factory(), //post時に新しいuseridを作成
];
}
DBにカラムを作成していれば、データタイプはaddressやemailなども可能。
ここではまだDBに入れる記事数は記載しない
DatabaseSeeder.phpにダミー投稿数を記載
ファクトリーで生成するダミーデータの数を下記のファイルの中でrunメソッドにて設定
public function run(): void
{
\App\Models\Post::factory(3)->create(); //factoryを使ってPostモデルののダミーデータを3つ生
}
下記コマンドで実行
sail artisan db:seed
タイトル、本文が自動で入ったダミーデータが生成され、なおかつusersテーブルにもダミーユーザーが三つ追加されている。