Enviar mensagens à uma nova requisição do mesmo controller do Zend Framework

Em: Zend

28 jan 2009

Quando você faz uma nova requisição ao mesmo controller, a instância atual é perdida, juntamente com as mensagens que houvera configurado.

Para enviar mensagens ao usuário em uma nova requisição, você deverá fazer uso de um helper chamado FlashMessenger, que, por sua vez, utiliza a classe Zend_Session para passar a mensagem à diante, removendo-a logo em seguida.

Segue um exemplo de uso desse helper:

class ExemploController extends Zend_Controller_Action
{
    protected $_flashMessenger = null;
 
    public function init()
    {
        // Coloca o helper na variável de instância _flashMessenger
        $this->_flashMessenger = $this->_helper->getHelper('FlashMessenger');
        $this->initView();
    }
 
    public function atualAction()
    {
        // O método addMessage() adiciona uma mensagem
        $this->_flashMessenger->addMessage('Dados salvos com sucesso!');
    }
 
    public function proximaAction()
    {
        // O método getMessages() retorna um Array com as mensagens
        $this->view->mensagens = $this->_flashMessenger->getMessages();
    }
}

Na view, você terá todas as mensagens em $this->mensagens

Comentário

Sobre o autor

Rubens Gadelha é formado em Webdesign & Webmaster (hoje Desenvolvimento de Web e Comércio Eletrônico) pela Universidade Estadual Vale do Acaraú - UVA e dedica algumas horas do dia à boa leitura e autodidática.

Atualmente trabalha como Programador Web, focado na linguagem PHP e no Zend Framework, bibliotecas de javascript como JQuery e o uso de CMS’s como Drupal. Os bancos de dados MySQL e PostGres também fazem parte do seu dia-a-dia.

Dedica suas horas vagas ao aprofundamento na linguagem Java

Categorias

Arquivos