zend-framework – 从Zend Controller插件中获取View对象
发布时间:2020-12-13 22:08:10 所属栏目:PHP教程 来源:网络整理
导读:在我的控制器中,我有一个postDispatch来整合我的FlashMessenger消息: public function postDispatch(){ $messages = $this-_helper-getHelper ( 'FlashMessenger' ) -getMessages (); if ( $this-_helper-getHelper ( 'FlashMessenger' ) -hasCurrentMessag
在我的控制器中,我有一个postDispatch来整合我的FlashMessenger消息:
public function postDispatch() { $messages = $this->_helper->getHelper ( 'FlashMessenger' ) ->getMessages (); if ( $this->_helper->getHelper ( 'FlashMessenger' ) ->hasCurrentMessages () ) { $messages = array_merge ( $messages,$this->_helper->getHelper ( 'FlashMessenger' ) ->getCurrentMessages () ); $this->_helper->getHelper ( 'FlashMessenger' ) ->clearCurrentMessages (); } $this->view->alert = $messages; } 我想把它变成一个Controller插件. 更新:我意识到为什么我需要这个 – 我希望在JSON上下文调用时以JSON方式传递我的flash消息.除非将消息添加到View对象,否则我不会收到消息. 我能够将消息放入数组中,但我不知道如何将它们传递给视图: class Plugin_FlashMessenger extends Zend_Controller_Plugin_Abstract { public function postDispatch($request) { $flashmessenger = Zend_Controller_Action_HelperBroker::getStaticHelper ( 'FlashMessenger' ); $messages = $flashmessenger->getMessages (); if ( $flashmessenger->hasCurrentMessages () ) { $messages = array_merge ( $messages,$flashmessenger->getCurrentMessages () ); $flashmessenger->clearCurrentMessages (); } // THIS LINE IS WRONG. HOW DO I SEND $messages TO THE VIEW? $this->view->alert = $messages; } } 奖金问题 – 这是实现这一目标的正确方法吗?谢谢! 解决方法
我在寻找相同的东西时发现了你的帖子.基于
this thread,有两种简单的方法可以实现它.
一:如果您的视图在bootstrap期间初始化(resources.view [] =在您的application.ini中),您可以简单地调用: $view = Zend_Controller_Front::getInstance() ->getParam('bootstrap') ->getResource('view'); 二:如果您的视图在引导期间未初始化: $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); if (null === $viewRenderer->view) { $viewRenderer->initView(); } $view = $viewRenderer->view; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |