-1

我正在使用 laravel 工厂并坚持使用嵌套关系船。例如,一个用户可能有很多帖子,而一个帖子有很多评论。我能够通过 each() 方法与用户一起保存帖子,但无法通过帖子保存评论

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

因为 save() 方法接受数组,所以我必须对帖子使用 make() 方法,但现在我不能在帖子中附加评论。经过一个小时的搜索,我不喜欢这个解决方案,但现在我已经解决了。我将它发布在寻找解决方案的研究员的答案中,如果有更体面的解决方案,请更新我。谢谢

4

1 回答 1

0

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

$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());
  }
}
于 2018-10-27T21:58:01.023 回答