【发布时间】:2019-05-25 02:05:41
【问题描述】:
我在数据库中有一个多对多关系,看起来像 用户 -> user_companies -> 公司。
我的问题是,就我们的业务逻辑而言,这应该是一对一的关系,但纠正这将需要大量工作。在数据透视表中,用户只有一个条目。
目前在用户模型上我正在这样做,但它返回一个模型而不是关系实例。
// returns relationship instance
public function companies()
{
return $this->belongsToMany('App/Company', 'user_companies');
}
// returns model
public function company()
{
return $this->companies()->first();
}
当数据库设置为多对多时,我是否可以模仿一对一关系的行为?
更新:
Laravel 现在添加了一个开箱即用的 HasOneThrough 关系。 https://laravel.com/docs/5.8/eloquent-relationships#has-one-through
【问题讨论】: