2017-02-19 13 views
0

Я пытаюсь создать сеялку для своих табличных адресов, но одно поле моей таблицы, является внешним ключом. Этот Fk ссылается на идентификатор пользователя моих пользователей таблицы.Создание Seeder с полем внешнего ключа Laravel 5.3

Мой Сеялка Класс:

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, 
      ]); 
     } 
    } 
} 

Когда я бегу дб: семя, я receave ошибку:

[ErrorException] Аргумент 1 передается Факер \ Provider \ Base :: randomElements() должен быть массив типа, объект данного, называется в C: \ XAMPP \ HTDOCS \ Projeto \ поставщика \ fzaninotto \ поддельной г \ SRC \ Факер \ Provider \ Base.php на линии 205 и определено

ответ

0

Это потому, что pluck() вернет объект t, используйте toArray(), чтобы разобрать его.

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

Спасибо Rohan, но этот способ тоже работает -> $ users = User :: pluck ('id') -> all(); –

+0

спасибо за обновление, у меня был опыт работы с 'list()' (устарело) –