1

在我的定义方法中,我得到了这个:

$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'}

我怎样才能让它变得独一无二?(只有一行具有唯一用户和项目)

谢谢。

4

1 回答 1

1

我认为最务实的做法就是在工厂外做这件事。在手动将值分配给每个工厂创建时。

foreach ($users as $userId) {
    foreach ($items as $itemId) {
        factory(YourModel::class)->create(
            [
                'user' => $userId,
                'item' => $itemId,
            ]
        );
    }
}
于 2021-10-31T11:08:34.783 回答