0

我正在尝试为我的表地址创建一个播种器,但我的表的一个字段是一个外键,这个 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 r\src\Faker\Provider 中调用\Base.php 在第 205 行并定义

4

1 回答 1

1

这是因为pluck()会返回一个对象,toArray()用来解析它。

$users = User::all()->pluck('id')->toArray();
于 2017-02-19T20:02:03.677 回答