Как исправить ошибку «Call to a member function isAttributeRequired() on null» при открытии формы связных таблиц?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Kven
Сообщения: 112
Зарегистрирован: 2016.10.20, 23:03

Как исправить ошибку «Call to a member function isAttributeRequired() on null» при открытии формы связных таблиц?

Сообщение Kven »

Всем здравствуйте! Подскажите, как исправить проблему, имеется две связанные между собой таблицы Accept и Address. Для понимания в таблицу Accept записываются данные об объекте, а в таблицу Address записываются данные о месторасположении объекта. Сохранение данных из формы в БД проходит нормально, редактирование новой добавленной записи тоже проходит нормально. Проблема заключается в том, что мне надо отредактировать ранее добавленные записи в таблице Accept, об объектах которых в таблице Address еще нет информации, и при открытии такого объекта я получаю следующую ошибку:

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

Call to a member function isAttributeRequired() on null
При переходе к экшену Update выдает следующую ошибку (строка 'data' => $city,):

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

<?=
    $form->field($address, 'city_id', ['template' => "{label}\n{input}"])->widget(Select2::classname(), [
        'data' => $city,
        'options' => ['placeholder' => 'Выбор станции'],
        'pluginOptions' => [
            'allowClear' => true
        ],
    ]);
?>
Массив $city в форме получаю следующим образом:

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

$listing = app\models\City::find()->where(['id' => $address->city_id])->orderBy('city_name')->asArray()->all();
$city = ArrayHelper::map($listing,'id','city_name');
При переходе к записи хранящейся в Accept, получается что данных в таблице Address о текущей записи нет, и параметр city_id отсутствует.
Ответить