Call to a member function isAttributeRequired() on null
public function actionUpdate($id)
{
$model = Accept::find()->where(['id'=>$id])->one();
$address = Address::find()->where(['accept_id'=>$model->id])->one();
if ($model->load(Yii::$app->request->post()) && $address->load(Yii::$app->request->post())) {
if($model->save()){
$address->accept_id = $model->id;
if ($address->save()) {
return $this->redirect(['view', 'id' => $model->id]);
}
}
}
return $this->render('update', compact('model', 'address'));
}
Error: Call to a member function isAttributeRequired() on null in J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\widgets\ActiveField.php:915
Stack trace:
#0 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\widgets\ActiveField.php(776): yii\widgets\ActiveField->addAriaAttributes('<span class="st...')
#1 J:\OSPanel\domains\forms6.loc\views\accept\form_user.php(36): yii\widgets\ActiveField->widget('kartik\\select2\\...', Array)
#2 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(336): require('J:\\OSPanel\\doma...')
#3 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(254): yii\base\View->renderPhpFile('J:\\OSPanel\\doma...', Array)
#4 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(156): yii\base\View->renderFile('J:\\OSPanel\\doma...', Array, NULL)
#5 J:\OSPanel\domains\forms6.loc\views\accept\_form.php(29): yii\base\View->render('form_user', Array)
#6 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(336): require('J:\\OSPanel\\doma...')
#7 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(254): yii\base\View->renderPhpFile('J:\\OSPanel\\doma...', Array)
#8 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(156): yii\base\View->renderFile('J:\\OSPanel\\doma...', Array, NULL)
#9 J:\OSPanel\domains\forms6.loc\views\accept\update.php(17): yii\base\View->render('_form', Array)
#10 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(336): require('J:\\OSPanel\\doma...')
#11 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(254): yii\base\View->renderPhpFile('J:\\OSPanel\\doma...', Array)
#12 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\View.php(156): yii\base\View->renderFile('J:\\OSPanel\\doma...', Array, Object(app\controllers\AcceptController))
#13 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\Controller.php(384): yii\base\View->render('update', Array, Object(app\controllers\AcceptController))
#14 J:\OSPanel\domains\forms6.loc\controllers\AcceptController.php(129): yii\base\Controller->render('update', Array)
#15 [internal function]: app\controllers\AcceptController->actionUpdate('818')
#16 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array(Array, Array)
#17 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\Controller.php(157): yii\base\InlineAction->runWithParams(Array)
#18 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\Module.php(528): yii\base\Controller->runAction('update', Array)
#19 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\web\Application.php(103): yii\base\Module->runAction('accept/update', Array)
#20 J:\OSPanel\domains\forms6.loc\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#21 J:\OSPanel\domains\forms6.loc\web\index.php(13): yii\base\Application->run()
#22 {main}
модель Address
public function getAccepts(){
return $this->hasMany(Accept::className(), ['id' => 'accept_id']);
}
модель Accept
public function getAddress(){
return $this->hasOne(Address::className(), ['accept_id' => 'id']);
}
$listing = app\models\City::find()->indexBy('city_name')->orderBy('city_name')->asArray()->all();
$city = ArrayHelper::map($listing,'id','city_name');
<?=
$form->field($address, 'city_id', ['template' => "{label}\n{input}"])->widget(Select2::classname(), [
'data' => $city,
'options' => ['placeholder' => 'Выбор станции'],
'pluginOptions' => [
'allowClear' => true
],
]);
?>
<?=
$form->field($address, 'city_id', ['template' => "{label}\n{input}"])->widget(Select2::classname(), [
'data' => $city,
'options' => ['placeholder' => 'Выбор станции'],
'pluginOptions' => [
'allowClear' => true
],
]);
?>
$listing = app\models\City::find()->indexBy('city_name')->orderBy('city_name')->asArray()->all();
$city = ArrayHelper::map($listing,'id','city_name');