Zend Framework: Flash Messenger, добавить сообщение из модели - PullRequest
4 голосов
/ 15 марта 2010

Есть идеи, как лучше всего добавить сообщение во флеш мессенджер из модели?

Поскольку FlashMessenger является помощником действий, это кажется невозможным, поэтому очевидным решением является создание внутреннего объекта сообщения в модели и его возврат в контроллер, откуда вы можете использовать addMessage (). Но если вы хотите вернуть что-то еще, это падает.

Другая идея - это дополнительное пространство имен сеанса для этих внутренних сообщений, которое затем объединяется с сообщениями пространства имен Flash Messenger во время вывода?

У кого-нибудь есть мысли или опыт по этому поводу? Приветствия.

Ответы [ 2 ]

7 голосов
/ 17 марта 2010

Вы можете получить FlashMessenger из вашей модели следующим образом:

$messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('flashMessenger');
$messenger->addMessage('test message');
3 голосов
/ 15 марта 2010

Оба маршрута звучат корректно.

Одной из идей было бы добавить массив $ message к вашей модели, к которому помощник действий может получить доступ для извлечения сообщений. Таким образом, вы можете вернуть несколько сообщений одновременно.

Другой вариант - использовать шаблон субъекта / наблюдателя . Пусть ваши модели реализуют интерфейс субъекта, а когда вам нужно вывести сообщения, уведомите наблюдателей, например, флеш-мессенджер (для которого вам нужно будет реализовать интерфейс Observer).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...