我有一个回复邮件的集合,但是,我想按“主题”和“发件人”对它们进行分组,为每个主题创建1个div,并显示最新的一个created_at。
所以我有:
id | senderId | receiverId | subject | message | created_at
我的控制器:
$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)?什么是最好的方式?
答案 0 :(得分:0)
您可以使用groupBy
/ aggregation。
$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