使用 laravel 工厂制作独特的行
Posted
技术标签:
【中文标题】使用 laravel 工厂制作独特的行【英文标题】:Make unique rows with laravel factory 【发布时间】:2021-12-15 10:58:49 【问题描述】:在我的定义方法中我得到了这个:
$users = []; // List of user's ids
$items = []; // List of Item's ids
return [
'user' => $this->faker->randomElement($user),
'item'=> $this->faker->randomElement($item),
];
这会产生重复的行,(具有相同用户列和项目列的多行)。
例如:我的数据库
0: id:'1',user:'1',item:'1'
1: id:'2',user:'5',item:'4'
2: id:'3',user:'7',item:'12'
3: id:'4',user:'1',item:'3'
4: id:'5',user:'1',item:'1' // Duplicated
5: id:'6',user:'10',item:'11'
我怎样才能让它变得独一无二? (只有一行具有唯一用户和项目)
谢谢。
【问题讨论】:
【参考方案1】:我认为最务实的做法就是在工厂外进行。在为每个工厂创建手动分配值时。
foreach ($users as $userId)
foreach ($items as $itemId)
factory(YourModel::class)->create(
[
'user' => $userId,
'item' => $itemId,
]
);
【讨论】:
以上是关于使用 laravel 工厂制作独特的行的主要内容,如果未能解决你的问题,请参考以下文章