Обработка несуществующих свойств моделей

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
nickdenry
Сообщения: 98
Зарегистрирован: 2015.10.28, 04:55

Обработка несуществующих свойств моделей

Сообщение nickdenry »

Всем привет!

Есть модель, Developer в которой одним из атрибутов выступает связанная модель Project, Developer hasOne Project.

Project в силу различных причин может быть не инициализирован (например Project удален, связь при этом не меняется автоматически, т.е. Developer содержит ссылку на Project).

При попытке доступа к атрибуту $developer->project возникает исключение

Код: Выделить всё

 PHP Notice – yii\base\ErrorException
Trying to get property of non-object
что само по себе логично. Как в принципе лучше обрабатывать эту ситуацию, чтобы не возникало исключения?
Последний раз редактировалось nickdenry 2015.11.20, 19:47, всего редактировалось 1 раз.
Ответственные программисты с высоким уровнем технического долга (c)

Аватара пользователя
ElisDN
Сообщения: 5536
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Обработка несуществующих свойств моделей

Сообщение ElisDN »

Код: Выделить всё

$developer->project ? $developer->project->name : '';
ArrayHelper::getValue($developer->project, 'name');

GridView::widget([
    'columns' => [
        'id',
        [
            'attribute' => 'project_id',
            'value' => 'project.name',
        ],
    ],
]); 

nickdenry
Сообщения: 98
Зарегистрирован: 2015.10.28, 04:55

Re: Обработка несуществующих свойств моделей

Сообщение nickdenry »

@ElisDN

Отлично, спасибо!
Ответственные программисты с высоким уровнем технического долга (c)

Ответить