zend-framework,从另一个动作助手中调用一个动作助手
我正在写一个动作助手,我需要从该助手中调用另一个动作助手。但我不知道如何。在这里的示例代码:zend-framework,从另一个动作助手中调用一个动作助手
class Common_Controller_Action_Helper_SAMPLE extends Zend_Controller_Action_Helper_Abstract
{
protected $_view;
public function __construct(Zend_View_Interface $view = null, array $options = array())
{
$this->_view = $view;
}
public function preDispatch()
{
$flashMessenger = $this->_helper->FlashMessenger; // IT IS NULL
}
}
$flashMessenger =
Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
您还可以使用getActionController得到一个参考回到你使用你通常会使用有什么方法ActionController的。
你可以把它用这种方式:
$this->_actionController->OtherActionHelper();
的_actionController
属性引用的实际动作控制器。
当试图使用这个答案时,我的控制器上有一个未定义的属性。但接受的答案对我来说确实有效。 – ANisus 2011-09-06 13:40:26
另一种解决方案是:
$flashMessenger = $this->getActionController()->getHelper('FlashMessenger');
该方法实际上效果更好,因为使用`getStaticHelper`,那么助手中的`getActionController`返回`null` – 2014-09-25 20:41:22
除了墨卡托的答案,之后添加你的方法,见下面的例子:
Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger')->myMethod();
它的工作很大。 :) – 2009-07-12 20:32:34