Laravel 工厂 - 如何保存嵌套关系

Laravel Factories - How to save nested relationships

我曾与 laravel 工厂合作,并坚持使用嵌套关系。 例如,一个用户可能有很多 post,而一个 post 有很多评论。 我能够通过 each() 方法与用户保存 posts,但无法使用 posts

保存评论
$users = factory(App\User::class, 3)->create()
    ->each(function ($user) {
        $user->posts()->saveMany(factory(App\Post::class, 5)->make());
    });

因为 save() 方法接受数组,所以我必须将 make() 方法与 post 一起使用,但现在我无法使用 post 附加评论。 经过一个小时的搜索,我不喜欢这个解决方案,但现在我已经解决了。 我正在 post 为正在寻找解决方案的同胞们提供答案,如果有更合适的解决方案,请更新我。 谢谢

这是我解决这个问题的方法:

$users = factory(App\User::class, 3)->create()
        ->each(function ($user) {
            $user->posts()->saveMany(factory(App\Post::class, 5)->make());
        });
foreach ($users as $user){
  foreach ($user->posts as $post){
    $post->comments()->saveMany(factory(App\Comment::class, 5)->make());
  }
}