我有3张桌子:
groups:
id, name
group_members:
id, group_id, user_id
users:
id
现在,我要做的是获得所有与之关联的成员组(只是组) 所以,例如我有以下内容:
groups
1, test
2, test-1
3, test-2
group_members
1, 1, 1
2, 1, 2
3, 3, 1
users
1
2
如果我想获得id = 1
用户所属的所有群组,则应返回:
groups
1, test
3, test-2
有没有一种说法,我可以只返回群组(在集合中)
由于
答案 0 :(得分:1)
您可以使用whereHas()
:
Group::whereHas('users', function($q) use($userId) {
$q->where('id', $userId);
})->get();
或者:
User::find($userId)->groups()->get();
答案 1 :(得分:0)
Group::whereHas('members', function($q) use($userId) {
$q->where('user_id', $userId);
})->get();
这似乎有效。我必须在我的模型中添加一些belongsTo
等关系