Laravel 5.2 - 检查2个用户之间是否存在对话

时间:2016-07-16 13:47:48

标签: php laravel laravel-5 eloquent

我试图在Laravel中实现一个私人消息系统,但是我确定是否存在对话。

我有3张桌子:

conversations
- id

users
- id
- name
- etc

conversation_user (pivot)
- user_id
- conversation id

我的模型对话属于多个用户和用户属于多个对话。

添加对话并将用户附加到数据透视表工作正常但我找不到一种干净的方法来检查两个用户之间是否存在对话。

我感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

尝试以下查询,看看它是否对您有所帮助:

Conversation::whereHas('users', function($query) use ($userIds) {
    $query->whereIn('id', $userIds);
})->exists();

答案 1 :(得分:0)

使用@ruffles回答一些小改动:

$hasConversation = Conversation::whereHas('users', function($query) use ($userIds) {
    $query->whereIn('id', $userIds);
})->count() === 2;