Laravel使用GroupBy并获取最新条目


Laravel using GroupBy and getting the latest entry

我当前正在使用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|RECEIVER|UPDATED_AT|CREATED_AT|CONV_ID

我认为,如果你使用

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

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