Странное поведение коллекций laravel 6.2 на php 7.4


Странное поведение коллекций laravel 6.2 на php 7.4

31.10.2020 04:09:57 Просмотров 6 Источник

Недавно я обновил свою версию php 7.3 до 7.4 и заметил странное поведение на Laravel версии 6.* коллекции. Следующий фрагмент кода работает:

    $modules = Module::orderByPriority()->get()->transform(function($module){

        dd(['id'=>$module->id, 'name'=>$module->course->name.' - '. $module->name]);
    });

И это не работает:

    $modules = Module::orderByPriority()->get()->transform(function($module){

         return ['id'=>$module->id, 'name'=>$module->course->name.'-'. $module->name];
    });

возвращение всегда дается ошибка: Попытка получить свойство "имя" не-объекта

У вопроса есть решение - Посмотреть?

Ответы - Странное поведение коллекций laravel 6.2 на php 7.4 / Strange behavior laravel 6.2 collections on php 7.4

Является ответом!
Arun A S

31.10.2020 04:14:04

Ваш dd() останавливает итерацию на первой итерации метода transform(). Скорее всего, у вас есть модуль, который не имеет курса, следовательно, во время его итерации вы получаете ошибку, потому что $module->course равно null, следовательно, попытка получить доступ к свойству name на null дает вам ошибку

Помочь в развитии проекта:
Закрыть X