Php 模型工厂与现有模型的关联
我的Laravel 5.2应用程序具有以下结构: 用户: 身份证件 名称 职位: 身份证件 标题 身体 用户id(fk) 评论: 身份证件 身体 用户id(fk) 邮政编码(fk) 我想创建几个用户(20个),为每个用户创建随机数量的帖子,并为每个帖子创建随机数量的评论(即使是固定数量也可以) 我可以创建用户并为每个帖子分配帖子,但我不能为每个帖子分配评论: 我有这个:Php 模型工厂与现有模型的关联,php,laravel,model,factory,Php,Laravel,Model,Factory,我的Laravel 5.2应用程序具有以下结构: 用户: 身份证件 名称 职位: 身份证件 标题 身体 用户id(fk) 评论: 身份证件 身体 用户id(fk) 邮政编码(fk) 我想创建几个用户(20个),为每个用户创建随机数量的帖子,并为每个帖子创建随机数量的评论(即使是固定数量也可以) 我可以创建用户并为每个帖子分配帖子,但我不能为每个帖子分配评论: 我有这个: factory(App\User::class, 20)->create()->each(function($u
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)
);
});
注意:我对模型之间的关系做了如下描述:
用户有很多帖子,
用户有很多评论,
帖子有很多评论,
发表评论如下:,
对用户进行以下评论您可以通过使用工厂嵌套下一个孩子等方式实现这一点 您有一些被某些
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
[ErrorException]未定义属性中设置的值:illumb\Database\Eloquent\Builder::$ordersI更改为App\User::class,错误消失了。:)谢谢,很高兴我能帮忙!:)这会在同一个用户的帖子中创建两条评论。但是我想对于一般测试来说,用数据填充数据库是可以的。