gpt4 book ai didi

php - 模型工厂与现有模型的关联

转载 作者:搜寻专家 更新时间:2023-10-31 21:26:46 25 4
gpt4 key购买 nike

我的 Laravel 5.2 应用程序中有以下结构:

用户:ID名称...

发布:ID标题 body 用户 ID (fk)

评论:ID body user_id (fk)post_id (fk)

我想创建几个用户(20 个),为每个用户创建随机数量的帖子,并为每个帖子创建随机数量的评论(即使是固定数量也可以)。

我可以创建用户并为每个用户分配帖子,但我无法为每个帖子分配评论:我有这个:

factory(App\User::class, 20)->create()->each(function($u) {
$u->posts()->saveMany(factory(App\Post::class, 5)->make();
});

我找到了一些东西但没有用:

factory(App\Comment::class, 100)->create()->each(function($u) {
$u->user()->sync(
App\User::all()->random(3)
);
});

注意:我将模型之间的关系设为如下:用户有很多帖子,用户有很多评论,帖子有很多评论,评论属于帖子,评论属于用户

最佳答案

你可以通过使用你的工厂来嵌套你的下一个 child 等来实现这一点。

你有被一些 fk 引用的关系,所以要获得正确的 'fk' 值,你可以执行以下操作:

factory('App\Users', 123)->create()->each(function ($u) {

factory('App\Posts', 1)->create([
'user_id' => $u->id,
])->each(function ($e) use ($u) {
factory('App\Comments', 10)->create([
'user_id' => $u->id,
'post_id' => $e->id,
]);
});

});

create 方法中的数组将覆盖 ModelFactory.php 中设置的值

关于php - 模型工厂与现有模型的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34964270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com