Чтобы вычислить сумму каждой группы в Laravel, вы можете использовать различные методы в зависимости от структуры ваших данных. Вот несколько методов с примерами кода:
Метод 1: использование методов groupBy
и sum
$groups = YourModel::all()->groupBy('group');
$sums = [];
foreach ($groups as $group => $items) {
$sums[$group] = $items->sum('value');
}
// $sums will contain the sum of each group
Метод 2: использование методов selectRaw
и groupBy
с необработанным SQL
$groups = YourModel::selectRaw('group, SUM(value) as sum')
->groupBy('group')
->get();
// $groups will contain the sum of each group as 'sum' attribute
Метод 3: использование методов mapToGroups
и sum
$groups = YourModel::all()->mapToGroups(function ($item) {
return [$item['group'] => $item['value']];
});
$sums = $groups->map(function ($items, $group) {
return [
'group' => $group,
'sum' => $items->sum(),
];
});
// $sums will contain the sum of each group with 'group' and 'sum' keys
Это всего лишь несколько примеров, и выбранный вами метод будет зависеть от вашего конкретного варианта использования и структуры данных.