Как отображать группы уведомлений по датам один за другим, используя Laravel 5?

Так что, если у меня есть noticestable где я храню title, body and date, Теперь я хочу отобразить его в следующем формате

2018-01-09
Title Body
abc   abc123
pqr   pqr123


2018-01-10
Title Body
mno   mno123
pqr   pqr123

Так что у меня есть вход для start date а также end date который получает все уведомления между этими датами.

$notices = App\Notice::whereBetween('date', [$request->start_date, $request->end_date])->oldest('date')->get();

Но сейчас я не знаю, как отфильтровать данные по дате и напечатать одну группу уведомлений ex. 2018-01-09 сначала, а затем другая группа уведомлений ex. 2018-01-10 и так далее.

Как этого добиться?

1 ответ

Используйте метод Collection::groupBy для группировки данных по полю даты:

$notices = App\Notice::whereBetween('date', [$request->start_date, $request->end_date])
           ->oldest('date')
           ->get()
           ->groupBy('date')
           ->toArray();

$group1 = $notices['2018-01-09'];
$group2 = $notices['2018-01-10'];
Другие вопросы по тегам