从控制器传递错误消息以在zf2中查看

问题描述:

我有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

只要将您的登录过程代码放入您的登录索引操作中,就无需为此执行两个操作。处理完登录并确定失败后,只需将错误消息传递给视图模型并将其显示在视图中即可。这可以通过几种方式完成。

$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