Laravel 5 Laravel工厂-如何保存嵌套关系
我在拉威尔工厂工作,一直坚持嵌套关系。 例如,一个用户可能有许多帖子,而一篇帖子有许多评论。 我可以通过each()方法用user保存帖子,但不能用帖子保存评论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()); })
$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());
}
}