使用外键字段创建播种机 Laravel 5.3
Creating Seeder with foreign key field Laravel 5.3
我正在尝试为我的 table 地址创建播种机,但我的 table 的一个字段是外键,这个 Fk 引用了我的 table 的用户 ID用户。
我的播种机Class:
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 时,我收到错误:
[错误异常]
传递给 Faker\Provider\Base::randomElements() 的参数 1 必须是数组类型,对象给定,在 C:\xampp\htdocs\projeto\vendor\fzaninotto\fake 中调用
r\src\Faker\Provider\Base.php 在第 205 行并定义了
因为pluck()
会return一个对象,用toArray()
解析出来
$users = User::all()->pluck('id')->toArray();
我正在尝试为我的 table 地址创建播种机,但我的 table 的一个字段是外键,这个 Fk 引用了我的 table 的用户 ID用户。
我的播种机Class:
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 时,我收到错误:
[错误异常] 传递给 Faker\Provider\Base::randomElements() 的参数 1 必须是数组类型,对象给定,在 C:\xampp\htdocs\projeto\vendor\fzaninotto\fake 中调用 r\src\Faker\Provider\Base.php 在第 205 行并定义了
因为pluck()
会return一个对象,用toArray()
解析出来
$users = User::all()->pluck('id')->toArray();