У меня есть таблица установки, подобная этой, с уже установленным отношением поворота.
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
из колонии 2
.
Я думал что-то вроде $user->colonies()->users()->where('id', '<>', $user->id)->get()
, но безрезультатно.
Надеюсь кто-нибудь может помочь, это действительно вызывает у меня головную боль: (
Извините за запутанный заголовок, но не носитель английского языка sh.