【问题标题】:Laravel hasMany relation on multiple columns [duplicate]Laravel在多列上有很多关系[重复]
【发布时间】:2016-01-15 10:05:34
【问题描述】:
我正在尝试在我无法更改的现有数据库上设置 Laravel 关系。
在这个数据库中有一个名为Teams 的表,其列:
此外,还有一个名为 Users 的表,其中包含一列:
这些表之间的关系如下:Users.User_id = Teams.Teamleader_1 OR Users.User_id = Teams.Teamleader 2
如何在两个团队领导列上的用户和团队之间设置 hasMany 关系?
【问题讨论】:
标签:
php
laravel
laravel-5
eloquent
laravel-5.1
【解决方案1】:
首先,您需要在团队模型中定义 2 个关系:
public function teamleader1() {
return $this->belongsTo(User::class, 'Teamleader_1', 'User_id');
}
public function teamleader2() {
return $this->belongsTo(User::class, 'Teamleader_2', 'User_id');
}
一旦你有了它,定义一个访问器,它将从这些关系中的任何一个中获取团队负责人:
public function getTeamleaderAttribute() {
return $this->teamleader1 ?: $this->teamleader2;
}
一旦你拥有它,你应该可以通过调用来访问用户:
$teamLeader = $team->teamleader;