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

问题描述:

我按照此link创建登录模式。现在我的登陆行动是如何在登录表单模式中显示错误消息?

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' 
        ] 
       ); 

在点击这个按钮,它显示的登录表单,模式和做客户端验证所需的属性。当提供正确的用户名和密码时,用户也会成功登录。

我的问题是,当我们传递了错误的凭证的用户名或密码,它是在另一页是无样式呈现site/login,并显示有错误名或密码错误。如何显示模态的错误?

+1

试图把阿贾克斯验证'enableAjaxValidation'=> true, –

+0

你是usi在ActiveForm小部件显示您的登录表单?这会为您的LoginForm模型显示错误。没有ActiveForm,你需要手动显示错误($ model-> getErrors()) – davey

+0

@vishva我设置'enableAjaxValidation'=> true,现在它不会进入无风格的页面,但问题是,它没有显示“不正确用户名或密码“错误的形式。这是显示错误消息在cosole,我怎么能得到该消息的形式 – Shrikant

使用Ajax验证像下面

在形式

'enableAjaxValidation'=>真实,

在下面的代码的控制器操作使用

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

它的工作,谢谢:) – Shrikant