将错误消息从控制器传递到 zf2 中查看 [英] Pass error message from controller to view in zf2

查看:23
本文介绍了将错误消息从控制器传递到 zf2 中查看的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have simple login in zf2. I want to show error message error to user when username/password didn't match.

在view/login.php中:

In 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,这是什么问题?

Here error_msg cannot passed to view, what are wrong with this?

另外我也试试

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

但是这里的链接没有转到登录/索引.而是转到登录/进程.进程是处理登录的动作.

But here link didn't go to login/index. but instead go to login/process. Process is the action in which login is processed.

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

Help me friends please. I want to pass error message from controller to view . So how should I do it.

推荐答案

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

Just put your login process code into your login index action, there's no need to have two actions for this. When you have processed your login and determined that it has failed simply pass your error message to your view model and display it in your view. This can be done in several ways.

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

这篇关于将错误消息从控制器传递到 zf2 中查看的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆