В мой контроллер, у меня есть postDispatch консолидировать свои FlashMessenger сообщения:Получение Просмотр объекта внутри плагина Zend Controller
public function postDispatch()
{
$messages = $this->_helper->getHelper ('FlashMessenger')
->getMessages();
if ($this->_helper->getHelper ('FlashMessenger')
->hasCurrentMessages())
{
$messages = array_merge ($messages, $this->_helper->getHelper ('FlashMessenger')
->getCurrentMessages());
$this->_helper->getHelper ('FlashMessenger')
->clearCurrentMessages();
}
$this->view->alert = $messages;
}
Я хочу сделать это в плагин контроллера.
UPDATE: Я понял, зачем мне это нужно - я хочу передать свои флеш-сообщения в JSON при вызове контекста JSON. Если сообщения не добавляются в объект View, я не получаю сообщения.
Я был в состоянии получить сообщения в массив, но я не знаю, как передать их мнению:
class Plugin_FlashMessenger extends Zend_Controller_Plugin_Abstract
{
public function postDispatch($request)
{
$flashmessenger = Zend_Controller_Action_HelperBroker::getStaticHelper ('FlashMessenger');
$messages = $flashmessenger->getMessages();
if ($flashmessenger->hasCurrentMessages())
{
$messages = array_merge ($messages, $flashmessenger->getCurrentMessages());
$flashmessenger->clearCurrentMessages();
}
// THIS LINE IS WRONG. HOW DO I SEND $messages TO THE VIEW?
$this->view->alert = $messages;
}
}
бонусный вопрос - это правильный путь для достижения этой цели? Благодаря!
FlashMessenger отображает предупреждения на следующей странице. Поэтому, если вы хотите отправлять страницы на эту страницу, вам нужно сделать некоторую логику (получить предыдущие сообщения, получить текущие сообщения, объединить их). Поэтому я должен просто поместить логику в свой макет/представление? Это, конечно, намного проще, но я думал, что в сценариях представления есть плохая практика. – Corey
@Corey, Noumenal Flash Messenger View. Помощник Helper упоминает, что уже обрабатывает логику getMessages()/getCurrentMessages() для вас. –