当前位置:  开发笔记 > 后端 > 正文

Zend不同的视图脚本?

如何解决《Zend不同的视图脚本?》经验,为你挑选了2个好方法。

我有一个控制器将表单中的输入传递给模型类来执行验证.如果验证成功,我想允许流程继续并呈现与控制器关联的默认视图.

我的问题是,如果验证不成功,那么我希望模型传回验证错误消息并在单独的视图中显示它们.如何在备用视图上设置错误消息?

提前致谢.



1> Richy B...:

好吧,从控制器你可以将它们重定向到另一个控制器中的另一个动作:

$this->_forward($newactionname,
                        $newcontrollername,
                        $newmodulename,
                        Array($parameters_to_pass);
    }

或者你只是渲染一个不同的视图文件:

$this->render('index_alternative');



2> Dan..:

如果要重定向到同一个控制器中的动作,请不要使用_forward(),只需使用$ this-> fooAction()直接调用动作,而不是这个 - > _ forward('foo'...

原因是由于控制器被构造为wtice而可能发生的性能和错误.当您调用_forward时,不仅会再次运行predispatch(这是预期的事情),而是init(),并且还会再次调用构造函数.如果您的控制器从其他控制器扩展,那么也将调用所有这些控制器,包括它们的init().如果您的init()中有代码,它将运行两次,如果您正在写入数据库,它将写入该行两次!避免整个事情并直接调用操作并使用$ this-> render()代替.

如果您对代码进行了分析,则可以轻松查看此问题,

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有