Laravel 5.2 - 检查两个用户之间的对话是不是存在
Posted
技术标签:
【中文标题】Laravel 5.2 - 检查两个用户之间的对话是不是存在【英文标题】:Laravel 5.2 - Check if conversation between 2 users existLaravel 5.2 - 检查两个用户之间的对话是否存在 【发布时间】:2016-11-19 14:15:35 【问题描述】:我正在尝试在 Laravel 中实现一个私人消息系统,但我无法检查是否存在对话。
我有 3 张桌子:
conversations
- id
users
- id
- name
- etc
conversation_user (pivot)
- user_id
- conversation id
我的模型 Conversation belongsToMany Users 和 User belongsToMany Conversations。
添加对话并将用户附加到数据透视表工作正常,但我找不到检查两个用户之间是否存在对话的干净方法。
感谢您的帮助。
本
【问题讨论】:
【参考方案1】:试试下面的查询,看看是否对你有帮助:
Conversation::whereHas('users', function($query) use ($userIds)
$query->whereIn('id', $userIds);
)->exists();
【讨论】:
【参考方案2】:使用@ruffles 回答并稍作改动:
$hasConversation = Conversation::whereHas('users', function($query) use ($userIds)
$query->whereIn('id', $userIds);
)->count() === 2;
【讨论】:
以上是关于Laravel 5.2 - 检查两个用户之间的对话是不是存在的主要内容,如果未能解决你的问题,请参考以下文章
如何在laravel 5.2登录时检查电子邮件(确认/否)?