У меня есть немного кодирования в Laravel, которое обычно работает нормально.Это код:
$total = $registrations->groupBy('admin_year', 'internal_type')
->map(function ($rdw_entries) use ($all_types) {
$tmp_admin_year = $rdw_entries->keyBy('internal_type')->map->counter;
foreach ($all_types as $type) {
if (!isset($tmp_admin_year[$type['internal_type']])) {
$tmp_admin_year[$type['internal_type']] = '';
}
}
$tmp_admin_year = $tmp_admin_year->sortKeys();
$tmp_admin_year['Total'] = $tmp_admin_year->sum();
return $tmp_admin_year;
});
Обычно $ type содержит строковое значение, в этом случае он работает идеально.Но когда у меня есть числовое содержимое в $ type, результирующий ключ является числовым значением, и это разрушает мою последовательность.Я уже пытался решить эту bij strval (), но это отменяется оператором keyBy.А также оператор $ tmp_admin_year [$ type ['internal_type']] = "";приводит к числовому значению ключа.Я не смог найти в документации Laravel Collection никакой информации о том, как заставить ключ быть строкой.
Любая помощь приветствуется