Reputation: 71
I'm trying to create a seeder for my table addresses but one field of my table, is a foreign key, This Fk references a user id of my table users.
My Seeder 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,
]);
}
}
}
When i run the db:seed, i receave the error:
[ErrorException] Argument 1 passed to Faker\Provider\Base::randomElements() must be of the type array, object given, called in C:\xampp\htdocs\projeto\vendor\fzaninotto\fake r\src\Faker\Provider\Base.php on line 205 and defined
Upvotes: 0
Views: 1257
Reputation: 158
It's because pluck()
will return an object, use toArray()
to parse it.
$users = User::all()->pluck('id')->toArray();
Upvotes: 1