Laravel私人消息系统。获取所有相关用户问题

时间:2016-07-16 06:41:15

标签: laravel eloquent private messaging

我指的是这个帖子 Laravel 4 Relationship: messaging system

我创建了表格,并在“消息”和“用户”模型中建立了关系。 现在我可以通过此命令获取由我发送的消息列表 用户::找到($本身份识别码) - > sent_messages() - >得到();

我的问题是

我们如何获得向我发送消息的用户列表(登录用户)? 我的意思是在消息表中“from”可以登录user(1)或“to”可以登录user(1)。我想获得与(登录用户)聊天的其他用户的列表。

希望您理解我的问题和帮助。我是laravel的新手并且正在努力学习东西和最佳实践。如果您有建议使用github中已有的任何消息传递系统。我找到了一个名字“Laravel-messenger”但不适合我。

我们非常感谢您的建议和答案。致谢

1 个答案:

答案 0 :(得分:1)

可能不是使用表user_messages(只需删除它),只需将表消息修改为以下形式:

Messages: id | from_user_id | to_user_id | content

然后你可以进行查询:

$received = Messges::where('to_user_id','=',my_user_id);
$send = Messges::where('from_user_id','=',my_user_id);
$result = $received->union($send)->get();

(BONUS:您还可以添加列replay_from_message_id(第一条消息为null)以保存消息的后向序列(线程)。然后您还可以添加列first_message_id以简化获取线程查询)