如何获取用户之间的最新消息列表[关闭]

问题描述 投票:0回答:1

我正在寻找用户之间所有消息的列表,但只有

user A
user B
在数据库中发送的最新消息这些字段是
fromUser
toUser

我需要每个用户之间的最新消息列表。

例如:

来自用户 对用户 留言 date(这将是一个有效的日期 iso 时间字符串)
1 2 “你好” 6天前
1 3 “你好兄弟” 1天前
2 1 “嗨管理员” 5分钟前

我想得到以下列表

用户对 留言
2, 1 “嗨管理员”
1, 3 “你好兄弟”

但我希望 userPair 只包含其他用户而不是我自己的用户,我自己的用户 ID 将是 1

php sql laravel postgresql record
1个回答
-1
投票

您可以运行此查询。

auth()->user()->id
是你要在userPair中过滤的id。

use DB;

Message::orderBy('date', 'desc')
  ->where(function($q){
    $q->where('fromUser', auth()->user()->id) 
      ->orWheere('toUser', auth()->user()->id);
  })
  ->select(
    'message', 
    DB::raw("IF(fromUser = ?, toUser, fromUser) as user", [auth()->user()->id]),
    'CONCATENATE(fromUser, ",", toUser) as users' // If you want to select the exact pair you have specified in question
  )
  ->get();
© www.soinside.com 2019 - 2024. All rights reserved.