我有一个返回消息的集合,但是,我想按“主题”和“发件人”对它们进行分组,为每个主题创建 1 个 div,并显示最新的 create_at。
所以我有:
id |发件人 ID |接收者ID |主题 |留言 |创建于
我的 Controller :
$messages = Message::where('receiverId', \Auth::user()->name)
->orderBy('created_at','desc')
->paginate(10);
return view('chat')->with(compact('messages'));
所以这有效:dd($messages[0]->subject)
。另外,在我看来,我可以使用 @foreach
将其用作 $message->created_at
。目前看起来是这样的(未列出主题):
*yIZgT0oqH - 是名称
如何按 subject
和 senderId
对它们进行分组,并使用最新消息 (created_at
) 将它们显示为 1 组 (1 div) >)?最好的方法是什么?
最佳答案
您可以使用groupBy
/聚合来修改查询以执行类似的操作。
$messages = Message::where('receiverId', \Auth::user()->name)
->groupBy('subject')
->orderBy('created_at','desc')
->paginate(10);
检查文档是否有相同的内容 - http://laravel.com/docs/5.1/queries#ordering-grouping-limit-and-offset
关于php - 按相同字段分组并显示为 1 个部门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33227664/