#php #laravel
#php #laravel
Вопрос:
код
$data = Event::with(['favourite' => function ($q){
$q->select('*');
$q->groupBy(function ($date) {
return Carbon::parse($date->created_at)->format('M'); **// this line have error**
});
}])
->select('id', 'title')
->get()
->where('id', $eventid)
->toArray();
// если не сгруппировать по данным, то вывод станет
[0] => Array
(
[id] => 3
[title] => Everything You Need to Know About Business From Start-up to IPO, Straight From the VC's Mouth
[favourite] => Array
(
[0] => Array
(
[created_at] => 2020-09-10T17:54:06.000000Z
)
[1] => Array
(
[created_at] => 2020-09-10T18:21:00.000000Z
)
[2] => Array
(
[created_at] => 2020-09-28T15:05:38.000000Z
)
[3] => Array
(
[created_at] => 2020-08-28T15:05:38.000000Z
)
)
)
Конечные данные должны быть
[0] => Array
(
[id] => 3
[title] => Everything You Need to Know About Business From Start-up to IPO, Straight From the VC's Mouth
[favourite] => Array
(
[Aug] => Array
(
[total] => 1
)
[Sep] => Array
(
[total] => 3
)
)
)
Кто-нибудь сталкивался с этой ошибкой раньше? Когда я пытаюсь разделить данные как группу. Если будет возвращена ошибка, stripos() ожидает, что параметр 1 будет строкой, объект задан. Приведенный выше код вернет все данные из базы данных.
Комментарии:
1. Анонимная функция передает объект построителя запросов, а не указанный вами столбец. Так
$date
что это не то, что вы думаете.2. @lagbox потому что я хочу сгруппировать по месяцам и рассчитать общие данные за месяц.