Ответ 1
Используйте помощник-помощник действий:
$flashMessenger =
Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
Я пишу помощник действия, и мне нужно вызвать другого помощника действий изнутри этого помощника. но я не знаю, как это сделать. здесь в примере кода:
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');
Другое решение:
$flashMessenger = $this->getActionController()->getHelper('FlashMessenger');
Вы также можете использовать getActionController, чтобы получить ссылку обратно на управляющий элемент, который вы использовали для любых методов, которые вы обычно использовали там.
В дополнение к ответу на меркатор добавьте свой метод после, см. пример ниже:
Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger')->myMethod();
Вы можете вызвать его следующим образом:
$this->_actionController->OtherActionHelper();
Свойство _actionController
ссылается на фактический контроллер действий.