Laravel 私信系统。获取所有相关用户问题

Laravel private messaging system . Fetch all related users issue

我指的是这个话题 Laravel 4 Relationship: messaging system

我创建了 tables 并且还在模型 "Message" 和 "User" 中创建了关系。 现在我可以通过这个命令获取我发送的消息列表 user::find($myid)->sent_messages()->get();

我的问题是

我们怎样才能得到向我发送消息的用户列表(登录用户)? 我的意思是在消息中 table "from" can be logged in user (1) 或 "to" can be logged in user (1) 。我想获取正在与(登录用户)聊天的其他用户的列表。

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

非常感谢您的建议和回答。谢谢

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

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();

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