Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-05-2008 14:36:41

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Helper FlashMessenger ne veut plus marcher!

Bonjour,

il m'arrive un problème de fou, je comprends rien.
Ce matin je me sers de FlashMessenger pour envoyer des messages d'infos après édition de liste.
Tout marche nickel, je pars manger je reviens, plus rien ne marche.

Mon code :

Code:

public function modifierAction
{
.......
if ($form->isValid($formData))
            {
                foreach ($rows as $row)
                {            
                    //Affectation des nouvelles valeurs vérifiées
                    if(!empty($formData[$row->id_utilisateur]['password']))
                        $row->password     = md5($formData[$row->id_utilisateur]['password']);    
                    $row->login     = $formData[$row->id_utilisateur]['login'];
                    $row->profil    = $formData[$row->id_utilisateur]['profil'];
                    $row->save();
                }
                $pagination = $this->getPagination();
                $this->_helper->FlashMessenger('La modification des utilisateurs a bien été effectuée');
                
                $this->_redirect("users?page=".$pagination['page']."&order=".$pagination['order']."&ordertype=".$pagination['ordertype']);
            }
.....
}
public function listerAction()
{            
        $table = new User();
        $page             = $this->_hasParam('page') ? $this->_getParam('page') : 1;
        $nb_par_page     = $this->_hasParam('nb_par_page') ? $this->_getParam('nb_par_page') : 20;
        
        $result = $table->liste($this->_getParam('order'),
                                $this->_getParam('ordertype')
                                ,array($page , $nb_par_page));
                         
        $this->view->data  = $result;
        $this->view->title = sprintf($this->view->_('Liste (nb,champ) %1$d %2$s'),$result->count(),$this->view->_('users'));
        $this->view->thisUrl = $this->view->BaseUrl() . $this->getRequest()->getPathInfo(); 
        $this->view->message = $this->_helper->FlashMessenger->getMessages();   
}

Si je fais un die() à la fin de listerAction et que j'affiche $this->view->message , il contient bien un tableau avec "'La modification des utilisateurs a bien été effectuée'"
Dans ma vue j'affiche mes messages:

Code:

foreach($this->message as $message)
{
    echo $message;
}

Si je mets un die après l'écho, le message s'affiche bien, sinon j'ai aucun affichage et rien dans la source, j'ai l'impression qu'il y a une redirection, bref y a quelquechose de bizarre qui se passe, surtout que je n'ai strictement rien touché !

Quelqu'un pourrait me donner un coup de main pour trouver l'origine du probleme ?
Merci

Dernière modification par sebondus (28-05-2008 14:47:18)

Hors ligne

 

#2 28-05-2008 14:58:58

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: Helper FlashMessenger ne veut plus marcher!

modifierAction est appelé apres ton listerAction?


En tout cas il manque () au niveau de déclaration de modifierAction

A premiere vue ca me semble normal la redirection, puisque tu fait un $this->_redirect juste apres avoir rempl ton FlashMessenger....

Jpeut pas vraiment aider plus, je suis pas fan de MVC wink

Hors ligne

 

#3 28-05-2008 15:01:43

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: Helper FlashMessenger ne veut plus marcher!

stf a écrit:

modifierAction est appelé apres ton listerAction?


En tout cas il manque () au niveau de déclaration de modifierAction

A premiere vue ca me semble normal la redirection, puisque tu fait un $this->_redirect juste apres avoir rempl ton FlashMessenger....

Jpeut pas vraiment aider plus, je suis pas fan de MVC wink

Non lister action est appellé après modifierAction en cas de reussite de la modification.
Pour listerAction, je l'ai écris à la main ...j'ai oublié les () sinon ça ne marcherait pas.
FlashMessenger sert justement à mettre des messages en session pour pouvoir les afficher après redirection ... j'ai aucun probleme à afficher le message dans listerAction si je fais un die(), donc le message est bien setté.

Dernière modification par sebondus (28-05-2008 15:02:39)

Hors ligne

 

#4 28-05-2008 16:52:11

ichevc02
Membre
Date d'inscription: 25-07-2007
Messages: 127

Re: Helper FlashMessenger ne veut plus marcher!

Bonjour ,

flashmessenger utilise les sessions pour stoker les message :

vérifie que tu ne detruit pas la session entre 2 redirect.

flashmessenger supprime les message affichés :
trace ton code et verifi que tu ne fais pas une "double redirection " :

genre :
action A :set message et redirige vers B
action B : affiche message et redirige vers C (donc pas d'affichage visible coté client)
action C : le message setté en A aura disparu car effacé du flashmessenger.

c'est juste des pistes ....

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages