【问题标题】:Retrieving the last user message from chat - inbox从聊天中检索最后一条用户消息 - 收件箱
【发布时间】:2017-01-23 23:14:02
【问题描述】:

我正在建立我网站的聊天部分,这是我想出的用于检索收件箱和对话的最后一条消息的查询。

     $chat_inbox = Message::where('author_id', $this->user->id)
        ->orWhere('recipient_id', $this->user->id)
        ->groupBy('unique_chat_id')
        ->latest();

问题是我需要找到其他用户发送的最后一条消息,而不是发送消息的那个。然后我可以在收件箱中将此消息显示为未读,但我还需要检索当前用户开始的对话,即使其他用户仍未响应。

无论是谁发送的,此当前查询都会给我最后一条消息。任何帮助表示赞赏。

【问题讨论】:

  • 您当前的查询是:“获取 为 发送或接收的最新消息”。根据您的问题,我认为这不是您想要的。
  • 是的,我确实意识到这不是 100%。但是,我已经阅读了大量的 stackoverflow 线程并查看了大量的在线资源,但我无法弄清楚如何将我的聊天收件箱放在一起

标签: mysql laravel eloquent laravel-5.1


【解决方案1】:

你必须更改where的声明。

$chat_inbox = Message::where('recipient_id', $this->user->id)
    ->where('chat_id', some_id')
    ->groupBy('unique_chat_id')
    ->last();

【讨论】:

  • 请使用->latest() 而不是->last()
猜你喜欢
  • 2011-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-09
  • 2015-05-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-20
相关资源
最近更新 更多