【发布时间】:2019-04-13 06:41:33
【问题描述】:
我正在尝试以与 twitter 处理相同的方式对来自用户的消息进行排序。因此,应该列出每个向我发送消息的用户,并在下面列出他们给我的最新消息。
我试图得到这个的查询似乎对我有用,但它没有。它返回用户发送给我的第一条消息,所以相反。
这是我的查询:
$messages = Message::with('user')->where('target_user_id', Auth::user()->id)
->latest()->groupBy('user_id')->get();
消息表如下所示:
id
message
user_id ( user sending the message id)
target_user_id ( user the message is sent to id)
我已经尝试过人们指示我复制的方法,但没有成功。我得到了相同的结果和我当前的查询。
这是我尝试过的:
$messages = Message::with('user')->where('target_user_id', Auth::user()->id)
->select(DB::raw('t.*'))
->from(DB::raw('(SELECT * FROM messages ORDER BY created_at DESC) t'))
->groupBy('t.user_id')
->get();
【问题讨论】:
标签: php laravel laravel-5 eloquent