显示验证错误而不刷新页面



有没有什么方法可以在Yii2中显示验证错误而不进行重定向或刷新?

这是我执行登录操作的默认控制器代码,当输入的数据与数据库中的数据不匹配时,我想突出显示文本字段,这是对数据库的简单验证。

public function actionLogin()
{
/** @var amnahyii2usermodelsformsLoginForm $model */
$model = $this->module->model("LoginForm");

// load post data and login
$post = Yii::$app->request->post();
if ($model->load($post) && $model->validate()) {
$returnUrl = $this->performLogin(
$model->getUser(), $model->rememberMe
);
return $this->redirect($returnUrl);
}

return $this->render('login', compact("model"));
}

您可以这样做:

表单登录

<?php $form = ActiveForm::begin([
'validationUrl' => Url::toRoute(['site/login-validate']),
'action' => Url::toRoute(['site/login']),
'options' => [
'class' => 'form login'
],
]); ?>

站点控制器

public function actionLoginValidate(){
if(Yii::$app->request->isAjax){
$model = new Login();
if($model->load(Yii::$app->request->post())){
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}
throw new BadRequestHttpException("This action is not allowed.");
}

最新更新