Laravel db:seed尝试播种错误的表

时间:2019-07-03 13:50:21

标签: php postgresql laravel-5.8

我与这样建立的用户和nextOfKin模型之间存在关系

User.php

public function nextOfKin()
{
    return $this->hasOne(NextOfKin::class, 'user_id');
}

NextOfKin.php

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

我已经使用迁移创建了usersnext_of_kins表,并希望使用数据库种子将数据添加到表中。当我运行UsersTableSeeder

public function run()
{
    factory(App\User::class)->create()->each(function ($user) {
        $user->nextOfKin()->save(factory(App\NextOfKin::class)->make());
    });
}

返回错误

  

Illuminate \ Database \ QueryException:SQLSTATE [42P01]:未定义表:7错误:关系“ next_of_kin”不存在   第1行:插入“ next_of_kin”(“ user_id”,“ firstname”,“ lastname ...                       ^(SQL:插入“ next_of_kin”(“ user_id”,“ firstname”,“ lastname”,“ relationship”,“ address”,“ state”,“ country”,“ updated_at”,“ created_at”))值(1,威利(McCullough),家人,3334 B   里奇·克利夫斯(ridget Cliffs),密歇根州密歇根州,2019年7月3日13:35:48,2019-07-03 13:35:48)返回“ id”)

为什么迁移尝试插入到next_of_kin表而不是next_of_kins表中?用户表播种成功。如何解决?

1 个答案:

答案 0 :(得分:1)

在模型中,您可以指定要使用的表:

class NextOfKin extends Model
{
    protected $table= 'next_of_kins'; 
    ...
}