amio
@amio
Newbie web-developer)

Yii Framework: почему появляется ошибка PHP notice Trying to get property of non-object. В одном случае работает, в другом нет. Код идентичен?

Добрый день.

Не могу понять в чем дело. Передаю данные из двух связанных таблиц в GridView, с одной таблицей все работает, со второй нет.

КОД В МОДЕЛИ
public function getType(){
        return $this->hasOne(Type::className(), ['id' => 'id_type']);
    }

    public function getUser(){
        return $this->hasOne(User::className(), ['id' => 'id_user']);
    }


КОД В ВИДЕ
<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'tableOptions' => ['class' => 'table table-striped'],
        'columns' => [
            'id',
            'created_at',
            'id_user',
            [
                'attribute' => 'id_type',
                'value' => function($data){
                    return $data->type->name;
                },
            ],
            'client',
            'title',
           [
                'attribute' => 'id_user',
                'value' => function($data){
                    return $data->user->name;
                },
            ],
            'deadline',
            'price',

            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>


В случае с получением данных из Type все хорошо, а из User выдает Trying to get property of non-object.

В чем может быть дело? Код одинаковый абсолютно.
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
@melnikov_m
Проверьте через try на каком user_id падает приложение. Еще можно вот так выводить и будет все понятно.
return !empty($data->user) ? $data->user->name : 'пусто';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы