【问题标题】:Laravel Factories - How to save nested relationshipsLaravel 工厂 - 如何保存嵌套关系
【发布时间】:2019-04-01 06:30:46
【问题描述】:

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

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

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

【问题讨论】:

    标签: laravel-5 eloquent laravel-seeding factories


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-03-08
      • 2016-06-25
      • 2017-12-13
      • 2021-03-11
      • 1970-01-01
      • 2021-06-29
      • 2014-10-27
      • 1970-01-01
      • 2021-07-19
      相关资源
      最近更新 更多