代码之家  ›  专栏  ›  技术社区  ›  rahim asgari

Zend框架,从另一个动作助手中调用动作助手

  •  21
  • rahim asgari  · 技术社区  · 16 年前

    我正在编写操作助手,需要从该助手内部调用另一个操作助手。但我不知道怎么做。在示例代码中:

    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
        }
    }
    
    5 回复  |  直到 11 年前
        1
  •  36
  •   mercator    16 年前

    使用 action helper broker :

    $flashMessenger =
        Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
    
        2
  •  11
  •   multitask landscape    11 年前

    另一个解决方案是:

    $flashMessenger = $this->getActionController()->getHelper('FlashMessenger');
    
        3
  •  0
  •   Justin    16 年前

    您还可以使用getActionController来获取对您通常在那里使用的任何方法的actionController的引用。

        4
  •  0
  •   William Rossier    11 年前

    除了墨卡托的答案,在后面添加您的方法,请参见下面的示例:

    Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger')->myMethod();
    
        5
  •  -1
  •   Jason Plank Maksim Kondratyuk    14 年前

    你可以这样称呼它:

    $this->_actionController->OtherActionHelper();
    

    这个 _actionController 属性引用实际的操作控制器。