Laravel使用GroupBy并获得最新条目

时间:2013-11-20 18:24:37

标签: php laravel laravel-4

我目前正在使用groupBy('conv_id')将名为messages的表格中的行分组到对话中。

现在所有返回的结果都是唯一的conv_id,但唯一的行不是最新的,而是第一个创建的。

使用orderBy('created_at', 'desc')做的不多,我如何查询最新的行?

我正在使用的查询:

$this->orderBy('created_at', 'desc')->where('receiver', '=', $id)->orWhere('sender', '=', $id)->groupBy('conv_id')->select('conv_id', 'created_at')->get()->toArray();

表格如下:

ID | SENDER |接收器| UPDATED_AT | CREATED_AT | CONV_ID

1 个答案:

答案 0 :(得分:0)

我想,如果您使用

Message::where('receiver', '=', $id)
->orWhere('sender', '=', $id)
->orderBy('created_at', 'desc')
->select('conv_id', 'created_at')->take(1)->get();

然后,这将根据与created_at子句匹配的where返回最后一个条目/行。