Laravel Collection KeyBy конвертируется в числовой - PullRequest
0 голосов
/ 25 августа 2018

У меня есть немного кодирования в 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 никакой информации о том, как заставить ключ быть строкой.

Любая помощь приветствуется

...