hasOne关系和associate()?

时间:2017-01-27 13:04:55

标签: laravel laravel-5 laravel-5.2

我有这种关系:

  public function company(){
        return $this->hasOne('App\Models\User','personal_users_business_users', 'user_id', 'business_user_id');
    }

当我尝试这个时:

  $user->company()->associate($business_user_id);

我收到此错误:

  

调用未定义的方法   照亮\数据库\查询\生成器::准()

我有数据透视表personal_users_business_users,它有user_id, business_user_id, approved

现在我想插入数据透视表business_user_id。我做错了什么?

2 个答案:

答案 0 :(得分:0)

你的关系应该是这样的:

 public function company()
    {
        return $this->hasOne(User::class);
    }

用户是您要与之联系的型号,

你应该这样称呼关系:

 $user->company->business_user_id;

$ user 必须是您拥有关系功能的模型。 公司是您要获取的字段 business_user_id

答案 1 :(得分:0)

associate() belongsTo 关系的一种方法,但从上面看,您尝试通过 hasOne 关系调用它。

<强>更新

您可以在App \ Models \ User类

中创建一个函数
public function company() {
    return $this->belongsTo('MODEL_OF_COMPANY', 'foreign_key', 'owner_key', 'relation');
}

然后致电$this->company()->associate($company)