Здравствуйте, я новичок в Yii2 и в программирование тоже. Делаю форму регистрации, мне нужно выполнить проверку на уникальность email без перезагрузки страницы делаю так: view:
<?php $form = ActiveForm::begin(['id' => 'registration-form', 'enableAjaxValidation' => true]); ?>
<div class="form-group">
<label for="email-pop-up">E-mail</label>
<?= $form->field($model_reg, 'email')->textInput()->label(false); ?>
</div>
<div class="form-group">
<label for="password-pop-up-1">Пароль</label>
<?= yii\helpers\Html::activePasswordInput($model_reg, 'password', ['class' => 'form-control']); ?>
</div>
<div class="form-group">
<label for="password-pop-up-2">Повторить пароль</label>
<?= yii\helpers\Html::activePasswordInput($model_reg, 'password_repeat', ['class' => 'form-control']); ?>
</div>
Правила в модели:
public function rules(){
return [
[['email', 'password', 'password_repeat'],'required'],
['email', 'email'],
['email', 'unique', 'targetClass'=>'app\models\Person'],
['password', 'compare', 'compareAttribute' => 'password_repeat'],
];
}
Контроллер:
$model_reg = new \app\models\Predreg();
if (Yii::$app->request->isAjax && $model_reg->load(Yii::$app->request->post('Predreg'))) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model_reg);
Yii::$app->end();
}
if (Yii::$app->request->post('Predreg')) {
$model_reg->attributes = Yii::$app->request->post('Predreg');
if ($model_reg->validate()){
if ($model_reg->predreg()){
return \yii\helpers\Url::home();
}
}
}
Ошибка связанная с паролями работает верно, но не выводится ошибка неуникальности email адреса, если убираю свойство у формы 'enableAjaxValidation', то после перезагрузки страницы ошибка на месте. Подскажите как вывести эту ошибку без перезагрузки страницы???