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());
}
}
我曾与 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());
}
}