Laravel:获取多个用户同时共享的ManyToMany关系

时间:2019-11-05 19:13:04

标签: laravel

我有这种关系:

Chat->belongsToMany(User)
User->belongsToMany(Chat)

我需要以这样的方式查询关系,以使我同时获得属于2个用户的聊天记录。

是否有一种优雅的方法可以在不循环$user->chats的情况下使用Laravel,然后在循环$chat->users的内部进行查找,确定其中一个用户是否是第二个用户?

1 个答案:

答案 0 :(得分:1)

您可以与路口去所有常见的聊天:

$commonChats = $userA->chats->intersect($userB->chats);

或者通过查询:

$commonChats = $userA->chats()->whereHas('users', function($q) use($userB) {
    $q->where('id', $userB->id);
})->get();