У меня форма авторизации и регистрации в модальном окне(не важно как сделано, но для интересующихся через виджет)
Надо что бы при вводе логина и пароля выводило ошибку, не правильный логин(под полем логин) или не правильный пароль(под полем пароль) после нажатия на кнопку войти
В стандартной форме LoginForm валидируется только пароль, для того чтобы валидировался и логин я создал метод
public function validateUsername($attribute, $params)
{
if (!$this->hasErrors()) {
$user = $this->getUser();
if (!$user) {
$this->addError($attribute, 'Не правильный логин.');
}
}
}
ну и добавил в rules
// username is validated
['username', 'validateUsername'],
Теперь если нажать при не правильно логине контролер перекидывает на site/login где под полем логин выводит ошибку что не правильный логин, ну и для пароля тоже самое
В общем надо чтобы контролер не перекидывал на страницу site/login а выдавал ошибку сразу в моделаьном окне.
Вот сам стандартный экшен Логина
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
}
else {
$model->password = '';
return $this->render('login', [
'model' => $model,
]);
}
}
Вот и думаю с чего начать и как правильно сделать рендер в else, хотя сам $model->login() выдает bool но как то же передается сюда ошибки валидации
return $this->render('login', [
'model' => $model,
]);
Значит и можно отрендерит на модальное окно просто ошибку, как сделать? кто сталкивался?