2017-02-23 124 views
0

我按照此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

回答

1

使用Ajax驗證像下面

在形式

'enableAjaxValidation'=>真實,

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

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

它的工作,謝謝:) – Shrikant