我有 2 个表,用于创建消息、对话和消息。如果您与新合作伙伴创建新消息,您将获得一个新的对话 ID,因此如果您开始对话,您的 user_id 位于消息表中,而在对话表中您是 user_one,您的写作伙伴是 user_two。但是,如果在其他地方开始对话,您是 user_two 并且在消息表中,user_id 是另一个用户。
我需要你的写作伙伴的名字显示在列表中。
例子:
- 马里奥/最后一条消息/->如果我点击,我会看到消息
- 玛丽亚/最后一条消息/->如果我点击,我会看到消息
保存和显示消息正在工作。我只需要从你的谈话伙伴那里读到名字。
通过我的解决方案,我得到了写作伙伴的名字,但前提是你是用户二。问题是连接。我需要像 JOINNOTIN 这样的东西
我的桌子:对话
'id'
'user_one'
'user_two'
留言
'id'
'message'
'userid'
'conversationid'
我的查询:
$messages = DB::table('conversation')
->select('messages.message', 'conversation.user_one', 'conversation.user_two', 'users.name', 'users.firstname', 'messages.id', 'messages.created_at', 'conversation.id')
->join('users', 'users.id', '=', 'conversation.user_one')
->join('messages', 'messages.conversation_id', '=', 'conversation.id')
->where('messages.userid', '!=', Auth::user()->id)
->orwhere('conversation.user_one', '=', Auth::user()->id)
->orwhere('conversation.user_two', '=', Auth::user()->id)
->groupBy('messages.conversation_id')
->latest()
->get();