Ошибка семени в Laravel 5.5

Я столкнулся с проблемой заполнения. Мой файл AddressessTableSeeder.php выглядит следующим образом:

use Illuminate\Database\Seeder;

class AddressessTableSeeder extends Seeder
{
    public function run()
    {
        factory(App\Address::class, 50)->create()->each(function ($u) 
        {
            $u->users()->save(factory(App\User::class)->make());
        });
    }
}

Мой файл Address.php выглядит следующим образом:

class Address extends Model
{
    protected $fillable = ['user_id', 'name', 'address','mobile_no','image','email'];

    public function users() {
        return $this->belongsTo(User::class);
    }
}

Я получаю сообщение об ошибке, как показано ниже

введите здесь описание изображения


person abu abu    schedule 04.12.2017    source источник


Ответы (1)


Используйте associate и создайте пользователя перед связыванием, чтобы вы могли получить идентификатор перед его сохранением.

factory(App\Address::class, 50)->create()->each(function ($u) 
{
    $u->users()->associate(factory(App\User::class)->create())->save();
});
person JoshKisb    schedule 05.12.2017
comment
Спасибо за ваш ответ @Joshua Kisubi. Я получаю новую ошибку после использования вашего кода. i.stack.imgur.com/MajvG.png - person abu abu; 06.12.2017
comment
используя users() вместо user() $u->users()->associate(factory(App\User::class)->create())->save(); - person JoshKisb; 06.12.2017
comment
oi установите PDO, как вы запускали код laravel - person JoshKisb; 06.12.2017
comment
how have you been running laravel code Что это значит? @Джошуа Кисуби - person abu abu; 06.12.2017
comment
Давайте продолжим обсуждение в чате. - person JoshKisb; 06.12.2017