Laravel v.5.8:
Я хочу сгруппировать каждое дочернее отношение бюджетов и json его сериализовать.
$monthbudgets = \App\BudgetMonth::where('month', $curmonth)->with("budgets")->get();
foreach ($monthbudgets as $month) {
$month->budgets = $month->budgets->groupBy("customer_id");
}
dd($monthbudgets[8]);
, который вернет:
//laravel collection of "budgets"
...[
1 => [
0 => []
1 => []
],
5 => [
0 => []
]
]...
, но используя dd($monthbudgets[8]->jsonSerialize())
, он вернет:
//array of "budgets"
...[
0 => []
1 => []
2 => []
]...
Похоже, что он сплющивает его и удаляет ключи (1, 5).
Я тоже открытпредложения по минимизации цикла группировки. Я попытался
->with(["budgets" => function ($query) {
$query->groupBy("customer_id");
}])->get();
, что приведет к
Syntax error or access violation: 1055 'budgets.id' isn't in GROUP BY (...)