2017-02-18 79 views
1

我有zf2中的簡單登錄。當用戶名/密碼不匹配時,我想向用戶顯示錯誤消息錯誤。從控制器傳遞錯誤消息以在zf2中查看

鑑於/ login.php中:

if (isset($error_msg)) 
    { 
    echo $error_msg; 
    } 

在控制器我有:

$msg = array('error_msg' => 'Invalid Username or Password'); 
return $this->redirect()->toRoute('login', $msg); 

這裏ERROR_MSG無法通過查看,有什麼問題呢?

而且我也嘗試

$model = new ViewModel(array(
    'error_msg' => 'Wrong username or password', 
)); 
$model->setTemplate('login/index'); 
return $model; 

但這裏的鏈接沒有去登錄/索引。而是去登錄/處理。進程是處理登錄的操作。

請幫我的朋友。我想從控制器傳遞錯誤消息來查看。所以我應該怎麼做。

+0

你並不需要爲這個重定向。只需使用當前視圖來顯示錯誤。 – akond

+0

那麼,怎麼樣?代碼請 – Skylink

回答

2

只要將您的登錄過程代碼放入您的登錄索引操作中,就無需爲此執行兩個操作。處理完登錄並確定失敗後,只需將錯誤消息傳遞給視圖模型並將其顯示在視圖中即可。這可以通過幾種方式完成。

$viewModel = new ViewModel(); 
$viewModel->error_msg = 'Wrong username or password'; 
return $viewModel; 

return new ViewModel(array(
    'error_msg' => 'Wrong username or password', 
)); 

或者乾脆

return array(
    'error_msg' => 'Wrong username or password', 
); 
+0

Ayaz,如果問題解決與這個答案,請標記爲正確的。 – edigu

相關問題