Php 在Laravel中显示消息用户
我想获取发送的用户消息列表 我正在使用Php 在Laravel中显示消息用户,php,mysql,laravel-4,message,Php,Mysql,Laravel 4,Message,我想获取发送的用户消息列表 我正在使用users\u id来存储接收者id和sender\u id来存储发送者id。我想在whatsapp或fb messenger中显示消息用户列表 我试过使用 $message = Messages::whereRaw("(sender_id, `users_id`, `created_at`) IN ( SELECT sender_id, `users_id`, MAX(`created_at`)
users\u id
来存储接收者id和sender\u 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();
这将获取这些用户之间最后两次对话的数据
有没有办法获取用户发送或接收的最后存储的数据???经过几次尝试,我最终为
会话id
创建了一个字段,并将消息分组在该id下,以便两个用户之间只有一个唯一的会话id
$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
$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();