Вопрос по zend-framework – Zend-Framework, вызвать помощник действий из другого помощника действий

21

Я пишу помощник действий, и мне нужно вызвать другого помощника действий из этого помощника. но я не знаю как. здесь в примере кода:

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

Другое решение:

$flashMessenger = $this->getActionController()->getHelper('FlashMessenger');
Этот метод на самом деле работает лучше, потому что сgetStaticHelper, затемgetActionController в помощнике возвращаетсяnull
0

Вы также можете использовать getActionController, чтобы получить ссылку на actioncontroller, который вы использовали для любых методов, которые вы обычно используете там.

36

Использоватьброкер действий помощник:

$flashMessenger =
    Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');
это работало отлично. :) rahim asgari
-1

Вы можете назвать это так:

$this->_actionController->OtherActionHelper();

_actionController свойство ссылается на фактический контроллер действия.

При попытке использовать этот ответ, я получилUndefined property на моем контроллере. Однако принятый ответ сработал для меня.
0

В дополнение к ответу mercator добавьте свой метод после, см. Пример ниже:

Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger')->myMethod();

Похожие вопросы