Daniel Cintra
Daniel Cintra

Reputation: 71

Creating Seeder with foreign key field Laravel 5.3

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

Answers (1)

Rohan Shewale
Rohan Shewale

Reputation: 158

It's because pluck() will return an object, use toArray() to parse it.

$users = User::all()->pluck('id')->toArray();

Upvotes: 1

Related Questions