我需要列出用户的所有对话,按最后收到的消息排序(与 WhatsApp 的对话相同)。
通过这种方式,它可以正确排序,但会重复对话。
我尝试使用distinct()来解决这个问题,但最终要求将其放入messages.created_at,select然后再次重复结果。
Chat::where('chats.from_id', $user_id)
->join('messages', 'chats.id', '=', 'messages.chat_id')
->select('chats.*')
->orderBy('messages.created_at', 'desc')
->get();
Run Code Online (Sandbox Code Playgroud)