Имеетя форма во view:
<?php $form = ActiveForm::begin(); ?>
<div class="reg-form_wrap-row first">
<div class="center-title">Учетные данные</div>
<?php
if ($profile->email_confirmed == UsersProfileModel::NOT_CONFIRMED) {
$emailConfirm = '<a id="sendConfirm" class="btn-red-small btn-padding-12 btn_confirmation-email">Подтвердить</a>';
} else {
$emailConfirm = '<div class="input-text_right-info">Email подтвержден</div>';
}
if ($profile->phone_confirmed == UsersProfileModel::NOT_CONFIRMED) {
$phoneConfirmed = '';
} else {
$phoneConfirmed = '<div class="input-text_right-info">Телефон подтвержден</div>';
}
?>
<!--~~~~~~~~~~~~~~~~~~~~~~~~~ Center Col/Reg form/Row ~~~~~~~~~~~~~~~~~~~~~~~~~-->
<?= $form->field($user, 'email', ['options' => [
'class' => 'input-text-wrap reg-form_width-190'
]])->hint($emailConfirm)->textInput(['disabled' => true]) ?>
</div>
<div class="reg-form_wrap-row ">
<div class="center-title">Контактные данные</div>
<?= $form->field($profile, 'firstname')->textInput(['maxlength' => true]) ?>
<?= $form->field($profile, 'lastname')->textInput(['maxlength' => true]) ?>
<?= $form->field($profile, 'patronymic')->textInput(['maxlength' => true]) ?>
<?= $form->field($profile, 'birthday')->widget( DatePicker::className(), [
'language' => 'ru',
'dateFormat' => 'php:d-m-Y',
'clientOptions' => ['defaultDate' => '10-10-1950'],
'options' => [
'class' => 'form-control',
],
]) ?>
<!--~~~~~~~~~~~~~~~~~~~~~~~~~ Center Col/Reg form/Row ~~~~~~~~~~~~~~~~~~~~~~~~~-->
<?= $form->field($profile, 'phone')->hint($phoneConfirmed)->widget(MaskedInput::className(), [
'mask' => '+7 (999) 999-99-99',
'options' => ['class' => 'form-control', 'disabled' => true],
]) ?>
<?= $form->field($profile, 'skype')->textInput(['maxlength' => true]) ?>
<?= $form->field($profile, 'social_link')->textInput(['maxlength' => true]) ?>
<hr />
<div class="reg-form_info">Поля, отмеченные <sup>*</sup> , обязательны для заполнения</div>
</div>
<div class="reg-form_wrap-row">
<div class="center-title">Настройки приватности</div>
<!--~~~~~~~~~~~~~~~~~~~~~~~~~ Center Col/Reg form/Row ~~~~~~~~~~~~~~~~~~~~~~~~~-->
<?= $form->field($profile, 'show_profile')->radioList([
1 => 'Да',
0 => 'Нет'
]) ?>
<!--~~~~~~~~~~~~~~~~~~~~~~~~~ Center Col/Reg form/Row ~~~~~~~~~~~~~~~~~~~~~~~~~-->
<?= $form->field($profile, 'allow_write')->radioList([
1 => 'Да',
0 => 'Нет'
]) ?>
</div>
<div class="bottom-btn-right">
<?= Html::a(Yii::t('kupdam', 'Cancel'), ['/users-profile/view', 'id' => Yii::$app->user->id], ['class' => 'btn-blue-middle btn-padding-12']) ?>
<?= Html::submitButton(Yii::t('kupdam', 'Save'), ['class' => 'btn-red-small btn-padding-12', 'title' => Yii::t('kupdam', 'Save')]) ?>
</div>
<?php ActiveForm::end(); ?>
Код в методе, который работает с вышеупомянутой формой:
public function actionUpdate()
{
$id = Yii::$app->user->id;
$user = $this->findModel($id);
$profile = $user->profile;
$profile->birthday = Yii::$app->formatter->asDate($profile->birthday, 'dd-MM-yyyy');
// echo '<pre>';
// \yii\helpers\VarDumper::dump($profile);
// echo '</pre>';
// die();
if ( $user->load(Yii::$app->request->post()) && $profile->load(Yii::$app->request->post()) ) {
$profile->birthday = Yii::$app->formatter->asDate($profile->birthday, 'yyyy-MM-dd');
if ( $user->save() && $profile->save() ) {
Yii::$app->session->setFlash('success', Yii::t('test', 'Profile is updated successfuly'));
return $this->redirect(['view', 'id' => $user->id]);
} else {
throw new ServerErrorHttpException(Yii::t('test', 'Updating your data has go wrong'));
}
} else {
return $this->render('update', [
'user' => $user,
'profile' => $profile,
]);
}
}
Так вот, при нажатии на кнопку Сохранить, просто перекидывает на эту же страницу и не сообщается никаких ошибок. НО стоит удалить у полей атрибут disabled как всё сохраняется.
Почему?!
Буду рад любой помощи.