Доступ к ViewHelper из другого ViewHelper, в частности FlashMessenger - PullRequest
0 голосов
/ 06 февраля 2012

Итак, я создал помощник вида, чтобы специализировать / упростить некоторые функции помощника Flash Messenger.

Я много раз осматривал и увидел, что у вас должен быть доступ к помощнику FlashMessenger с помощью кода, подобного следующему:

$ this-> Вид -> _ helper-> flashMessenger-> GetMessages ();

Это не сработает для меня. Я могу получить доступ к просмотру, но не что-нибудь под _helper. Мой вспомогательный класс расширяет Zend_View_Helper_Abstract. Вам нужно явно передать представление из скрипта вида?

1 Ответ

3 голосов
/ 07 февраля 2012

Свойство $_helper объекта Zend_Controller_Action хранит экземпляр Zend_Controller_Action_HelperBroker, поэтому вместо передачи его из представления вашему помощнику вы можете получить экземпляр HelperBroker, а затем получить оттуда объект FlashMessenger.

// inside your view helper
$messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger');

Теперь у вас есть доступ к Flash Messenger из помощника по представлению. Вы можете сделать то же самое из любого места в приложении, чтобы получить ссылку на любых помощников действий.

Также обратите внимание, что если помощник еще не создан, вызов getStaticHelper инициализирует его для вас.

См. Помощники действий - Помощник брокера для получения дополнительной информации.

...