我指的是这个帖子 Laravel 4 Relationship: messaging system
我创建了表格,并在“消息”和“用户”模型中建立了关系。 现在我可以通过此命令获取由我发送的消息列表 用户::找到($本身份识别码) - > sent_messages() - >得到();
我的问题是
我们如何获得向我发送消息的用户列表(登录用户)? 我的意思是在消息表中“from”可以登录user(1)或“to”可以登录user(1)。我想获得与(登录用户)聊天的其他用户的列表。
希望您理解我的问题和帮助。我是laravel的新手并且正在努力学习东西和最佳实践。如果您有建议使用github中已有的任何消息传递系统。我找到了一个名字“Laravel-messenger”但不适合我。
我们非常感谢您的建议和答案。致谢
答案 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
以简化获取线程查询)