https://nodoame.net/archives/11572
上記URLに記載の通り、Factoryファイル、Seederファイルそれぞれ作成し実行したら、記載の通りの動作はしているのですが、
Seederファイルの部分の動きが理解できていません。
<?php use Illuminate\Database\Seeder; class PostsTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { // factory(App\Post::class, 50) ->create() ->each(function ($post) { $comments = factory(App\Comment::class, 2)->make(); $post->comments()->saveMany($comments); } ); } }
特に->each(function ($post) の無名関数の引数の**$post**の意味がわからず、下で****$post->comments()->saveMany($comments);**の部分でこの$postが何を指しているのわかりません。
説明がわかりにくくて申し訳ないのですが、どなたか教えて頂けませんでしょうか?
Factoryファイル2点も一緒にこちらに記載させて頂きます。
どうぞよろしくお願いします。
**PostFactory.php** <?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Post; use Faker\Generator as Faker; $factory->define(Post::class, function (Faker $faker) { return [ 'created_at' => $faker->date('Y-m-d H:i:s', 'now'), 'updated_at' => $faker->date('Y-m-d H:i:s', 'now'), 'subject' => $faker->realText(16), // 16文字のテキスト 'message' => $faker->realText(200), // 200文字のテキスト 'name' => $faker->name, // 氏名 'category_id' => $faker->numberBetween(1,5), // 1〜5のランダムな整数 ]; });
**CommentFactory.php** <?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\Comment; use Faker\Generator as Faker; $factory->define(Comment::class, function (Faker $faker) { return [ 'created_at' => $faker->date('Y-m-d H:i:s', 'now'), 'updated_at' => $faker->date('Y-m-d H:i:s', 'now'), 'name' => $faker->name, 'comment' => $faker->realText(200), ]; });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。