我在Listing表中有一个user_id的外键。 在我的ListingFactory中,我可以将随机用户的user_id放在该位置,但是我的用户也有一个is_seller bool。如何做到这一点,以便ListingFactory中的查询只给我一个is_seller = true的用户数组? 到目前为止,这是我的代码:
$factory->define(Listing::class, function (Faker $faker) {
$randomSellerId = \App\User::where('is_seller', true)->pluck('id')->toArray();
return [
'seller_id' => $faker->randomElement($randomSellerId),
];
});
此代码仍将所有用户(包括is_seller = false的用户)放入$randomSellerId
数组
答案 0 :(得分:0)
您不需要将集合转换为数组
Laravel Collection具有开箱即用的方法random
$factory->define(Listing::class, function (Faker $faker) {
$allSellerId= \App\User::where('is_seller', true)->pluck('id');
return [
'seller_id' => $allSellerId->random(),
];
});
答案 1 :(得分:0)
您可以使用以下内容获取随机ID。
$randomId = \App\User::where('is_seller', true)->inRandomOrder()->value('id')