Obtendo o objeto View de dentro de um plugin do Zend Controller
No meu controlador, tenho um postDispatch para consolidar minhas mensagens do FlashMessenger:
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;
}
Eu quero fazer isso em um plugin do controlador.
ATUALIZAÇÃO: Percebi por que preciso disso - quero passar minhas mensagens em flash no JSON quando chamadas pelo contexto JSON. A menos que as mensagens sejam adicionadas ao objeto View, eu não as recebo.
Consegui colocar as mensagens em uma matriz, mas não sei como passá-las para a exibição:
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;
}
}
Pergunta bônus - este é o caminho certo para fazer isso? Obrigado!