将错误消息从控制器传递到 zf2 中查看

Pass error message from controller to view in zf2

我在 zf2 中有简单的登录。当 username/password 不匹配时,我想向用户显示错误消息错误。

在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; 

但是这里link没有去login/index。而是转到 login/process。 process是处理登录的action。

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

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

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