Zend framework2 从控制器向zf2中的视图传递错误消息

Zend framework2 从控制器向zf2中的视图传递错误消息,zend-framework2,Zend Framework2,我在zf2中有简单的登录。我想在用户名/密码不匹配时向用户显示错误消息error 在view/login.php中: if (isset($error_msg)) { echo $error_msg; } 在控制器中,我有: $msg = array('error_msg' => 'Invalid Username or Password'); return $this->redirect()->toRoute('login', $msg);

我在zf2中有简单的登录。我想在用户名/密码不匹配时向用户显示错误消息error

在view/login.php中:

    if (isset($error_msg))
    {
    echo $error_msg;
    } 
在控制器中,我有:

$msg = array('error_msg' => 'Invalid Username or Password');
return $this->redirect()->toRoute('login', $msg);
此处错误消息无法传递到视图,这有什么问题

此外,我也尝试

$model = new ViewModel(array(
    'error_msg' => 'Wrong username or password',
));
$model->setTemplate('login/index');  
return $model; 
但这里的链接并没有进入登录/索引。而是转到登录/处理。流程是处理登录的操作


请帮助我的朋友们。我想将错误消息从控制器传递到视图。那么我应该怎么做呢。

只要把登录过程代码放到登录索引操作中,就不需要两个操作了。当您处理了登录并确定登录失败后,只需将错误消息传递到视图模型并在视图中显示即可。这可以通过几种方式实现

$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',
);

你不需要重定向。只需使用当前视图来呈现错误。那么,如何处理呢?代码请是,如果此答案解决了问题,请将其标记为正确。