我正在尝试为我的表地址创建一个播种器,但是我的表中的一个字段是外键,这个Fk引用了我的表用户的用户ID。
我的播种机类:
class AddressesSeeder extends Seeder
{
public function run()
{
$faker = Faker::create();
// following line retrieve all the user_ids from DB
$users = User::all()->pluck('id');
foreach(range(1,50) as $index){
$address = Address::create([
'user_id' => $faker->randomElement($users),
'street' => $faker->street,
'number' => $faker->number,
'city' => $faker->city,
'state' => $faker->state,
'created_at' => $faker->datetime,
'updated_at' => $faker->datetime,
]);
}
}
}
当我运行db:seed时,我收到了错误:
[ErrorException] 传递给Faker \ Provider \ Base :: randomElements()的参数1必须是类型数组,给定对象,在C:\ xampp \ htdocs \ projeto \ vendor \ fzaninotto \ fake中调用 第205行的r \ src \ Faker \ Provider \ Base.php并定义了
答案 0 :(得分:0)
这是因为pluck()
将返回一个对象,使用toArray()
来解析它。
$users = User::all()->pluck('id')->toArray();