从控制器传递错误消息到zf2中的视图

时间:2017-02-18 17:49:16

标签: zend-framework2

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

在view / 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无法传递给view,这有什么问题?

此外,我也尝试

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

但是这里的链接没有进入登录/索引。而是去登录/处理。 Process是处理登录的操作。

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

1 个答案:

答案 0 :(得分: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',
);