我当时在laravel工厂工作,被嵌套关系船困住了。 例如,用户可能有很多帖子,而一个帖子有很多评论。 我能够通过each()方法与用户一起保存帖子,但无法与帖子一起保存评论
$users = factory(App\User::class, 3)->create()
->each(function ($user) {
$user->posts()->saveMany(factory(App\Post::class, 5)->make());
});
因为save()方法接受数组,所以我必须在帖子中使用make()方法,但是现在我无法在帖子中附加评论。 经过一个小时的搜索,我无法解决这个问题,但是现在我已经解决了。 我将其发布在寻找解决方案的同事的答案中,如果对此有更多不错的解决方案,请及时更新。 谢谢
答案 0 :(得分: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());
}
}