Action Helper中FlashMessenger Helper的参数

时间:2014-10-30 10:33:07

标签: php zend-framework

我通过扩展Zend_Controller_Action_Helper_Abstract来编写自定义Helper类。在这个Helper类中,我想利用FlashMessenger在需要时显示消息。我想区分警告,成功和错误信息(不,我不是种族主义者)。

在一个扩展Zend_Controller_Action的类中,我这样做,见下文。

$this->_helper->FlashMessenger(array('error' => 'An error occured'));

编写扩展Zend_Controller_Action_Helper_Abstract的Helper类时,可以同时使用getActionController()getHelper方法获取Helpername。见下文。

$this->getActionController()->getHelper('FlashMessenger');

我想将array('error' => 'An error occured')作为参数添加到getHelper mehod中的FlashMessenger助手。我想知道,是否可以通过getHelper向FlashMessenger助手添加参数?如果没有,那你怎么解决这个问题?

1 个答案:

答案 0 :(得分:1)

link提供了解决方案:

  

因此,如果有人想要从外部设置Flash消息   动作控制器,然后你应该使用这样的东西   Zend_Controller_Action_HelperBroker类及其静态助手   getStaticHelper。

$flashmessenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');  
$flashmessenger->addMessage(array('error' => 'An error occured')); 

由于getHelper('FlashMessenger')会返回Zend_Controller_Action_Helper_FlashMessenger的实例,您应该可以这样做:

$this->getActionController()->getHelper('FlashMessenger')->addMessage(array('error' => 'An error occured'));