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

我有这种关系:

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

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

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

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

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

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

或者通过查询:

$commonChats = $userA->chats()->whereHas('users',function($q) use($userB) {
    $q->where('id',$userB->id);
})->get();
本文链接:https://www.f2er.com/3157002.html

大家都在问