Em: Zend
28 jan 2009Quando 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
Rubens Gadelha é formado em Webdesign & Webmaster pela Universidade Estadual Vale do Acaraú - UVA e cursa atualmente o curso de bacharelado em Sistemas de Informação na Faculdade 7 de setembro (Fa7). Dedica algumas horas do dia à boa leitura e autodidática.
Atualmente trabalha como Desenvolvedor Web, focado na linguagem Java com bancos de dados Oracle e Postgres. Possui experiências anteriores na linguagem PHP e no Zend Framework, bibliotecas de javascript como JQuery, bancos de dados MySQL e no uso de CMS’s como Drupal.