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

Laravel 5 Laravel工厂-如何保存嵌套关系,laravel-5,eloquent,laravel-seeding,factories,Laravel 5,Eloquent,Laravel Seeding,Factories,我在拉威尔工厂工作,一直坚持嵌套关系。 例如,一个用户可能有许多帖子,而一篇帖子有许多评论。 我可以通过each()方法用user保存帖子,但不能用帖子保存评论 $users = factory(App\User::class, 3)->create() ->each(function ($user) { $user->posts()->saveMany(factory(App\Post::class, 5)->make()); })

我在拉威尔工厂工作,一直坚持嵌套关系。 例如,一个用户可能有许多帖子,而一篇帖子有许多评论。 我可以通过each()方法用user保存帖子,但不能用帖子保存评论

$users = factory(App\User::class, 3)->create()
    ->each(function ($user) {
        $user->posts()->saveMany(factory(App\Post::class, 5)->make());
    });
因为save()方法接受数组,所以我必须在帖子中使用make()方法,但现在我不能在帖子中附加注释。 经过一个小时的寻找,我不喜欢这个解决方案,但现在我已经解决了。 我把它贴在寻找解决方案的同事的答案中,如果有更合适的解决方案,请告诉我。
谢谢

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

$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());
  }
}