【发布时间】:2020-05-25 20:08:58
【问题描述】:
我有一个这样的表设置,已经设置了透视关系。
users colonies colony_user
.----.-------. .----.------. .-----------.---------.
| id | name | | id | name | | colony_id | user_id |
'----+-------' '----+------' '-----------+---------+
| 1 | steve | | 1 | col1 | | 1 | 1 |
| 2 | kate | | 2 | col2 | | 1 | 2 |
| 3 | sven | '----'------' | 2 | 1 |
'----'-------' | 2 | 3 |
'-----------'---------'
// User Model
public function colonies()
{
return $this->belongsToMany(Colony::class);
}
// Colony Model
public function users()
{
return $this->belongsToMany(User::class);
}
我可以通过雄辩的关系从用户那里获得所有殖民地,反之亦然。
示例:$user->colonies()->get() 或 $colony->users()->get()。
我想获得的是来自我所在的同一个殖民地的其他用户。
提供该表后,如果我是user_id=1,我想同时获得用户2 和3,因为用户2 是我来自殖民地1 的同事,而用户3 来自殖民地@987654331 @。
我在想这样的事情$user->colonies()->users()->where('id', '<>', $user->id)->get(),但无济于事。
希望有人能帮忙,这真是让我头疼:(
抱歉标题令人困惑,不是以英语为母语的人。
【问题讨论】:
标签: php laravel eloquent pivot relationship