在Laravel中显示消息用户

时间:2014-12-27 09:13:51

标签: php mysql laravel-4 message

我想获取发送的用户邮件列表

我使用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();

这将获取这些用户之间最后两次会话的数据

有没有办法获取用户发送或接收的最后数据?

1 个答案:

答案 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