如何在登录表单模式中显示错误消息?
问题描述:
我按照此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
,并显示有错误名或密码错误。如何显示模态的错误?
答
使用Ajax验证像下面
在形式
'enableAjaxValidation'=>真实,
在下面的代码的控制器操作使用
if (Yii::$app->request->isAjax && $model->load($_POST))
{
Yii::$app->response->format = 'json';
return \yii\widgets\ActiveForm::validate($model);
}
+0
它的工作,谢谢:) – Shrikant
试图把阿贾克斯验证'enableAjaxValidation'=> true, –
你是usi在ActiveForm小部件显示您的登录表单?这会为您的LoginForm模型显示错误。没有ActiveForm,你需要手动显示错误($ model-> getErrors()) – davey
@vishva我设置'enableAjaxValidation'=> true,现在它不会进入无风格的页面,但问题是,它没有显示“不正确用户名或密码“错误的形式。这是显示错误消息在cosole,我怎么能得到该消息的形式 – Shrikant