0

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

Daniel Cintra
  • 71
  • 1
  • 1
  • 9

1 Answers1

1

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

$users = User::all()->pluck('id')->toArray();
Rohan Shewale
  • 158
  • 10