我想获取发送的用户邮件列表
我使用users_id
存储接收者ID和sender_id
来存储发件人ID我希望显示消息用户列表,如whatsapp或fb messenger
我尝试过使用
$message = Messages::whereRaw("(sender_id, `users_id`, `created_at`) IN (
SELECT sender_id, `users_id`, MAX(`created_at`)
FROM messages
WHERE `users_id`=$userId
or `sender_id`=$userId
GROUP BY sender_id, `users_id`)")
->skip($start)->take(51)
->orderBy('created_at','desc')
->get();
这将获取这些用户之间最后两次会话的数据
有没有办法获取用户发送或接收的最后数据?
答案 0 :(得分:1)
经过多次尝试后,我最终为conversationId
创建了一个字段,并将该消息归入该ID,以便两个用户之间只有一个唯一conversationId
< / p>
$message = Messages::whereRaw("(sender_id, `users_id`, `created_at`) IN (
SELECT sender_id, `users_id`, MAX(`created_at`)
FROM messages
WHERE `users_id`=$userId
or `sender_id`=$userId
GROUP BY conversationId)")
->skip($start)->take(50)
->orderBy('created_at','desc')
->get();
如果两个用户之间没有现有对话,则会创建对话ID