Ajax 如何在登录表单中显示错误消息?

Ajax 如何在登录表单中显示错误消息?,ajax,yii2,Ajax,Yii2,我将按照此创建一个登录模式。现在我的登录操作是 public function actionLogin() { if (!Yii::$app->user->isGuest) { return $this->goHome(); } $model = new LoginForm(); if ($model->load(Yii::$app->request->post()) && $model->

我将按照此创建一个登录模式。现在我的登录操作是

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{
        return $this->renderAjax('login', [
                'model' => $model,
        ]);         
    }
}
在另一个视图
test.php
中,我有一个按钮

echo Html::button('Create New Company',
                  ['value' => Url::to(['site/login']),
                   'title' => 'Creating New Company', 
                   'class' => 'showModalButton btn btn-success'
                  ]
                ); 
单击此按钮,它将登录表单显示为模态,并对所需属性进行客户端验证。提供正确的用户名和密码后,用户也会成功登录


我的问题是,当我们传递错误的用户名或密码凭据时,它会在另一个未设置样式的页面中呈现
站点/登录
,并在那里显示错误错误的用户名或密码。如何在modal上显示该错误

使用ajax验证,如下所示

形式上

“enableAjaxValidation”=>true

在控制器操作中使用以下代码

if (Yii::$app->request->isAjax && $model->load($_POST))
{
  Yii::$app->response->format = 'json';
  return \yii\widgets\ActiveForm::validate($model);
}

尝试将ajax验证'enableAjaxValidation'=>设置为true,您是否使用ActiveForm小部件显示登录表单?这将显示LoginForm模型的错误。如果没有ActiveForm,您需要手动显示错误($model->getErrors())@vishva I set'enableAjaxValidation'=>true,现在它不会进入未设置样式的页面,但问题是,它不会在表单上显示“错误的用户名或密码”错误。它在cosole中显示错误消息,如何在form@davey是的,我正在使用预先提供的默认登录表单模板检查我的答案