IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

RedirectResponse et flash messages [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Par défaut RedirectResponse et flash messages
    Bonjour,

    Dans mon application, j'ai une action qui définit un flash message, puis effectue un RedirectResponse vers une autre action qui fait le render :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public function firstAction() {
     
            // code ...
           $message = "Opération réalisée";
           $this->get('session')->setFlash('statut', $message);
     
           return new RedirectResponse($this->generateUrl('display'));
     }
     
    public function displayAction() {
     
            // code ...
           $debug = $this->get('session');
     
           return $this->render('ProjectMyBundle:Default:index.html.twig');
     }
    Dans mon Twig :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {% if app.session.hasFlash('statut') %}
        <div id="statutOk">
            {{ app.session.flash('statut') }}
        </div>
    {% endif %}
    Seulement, le flash message ne s'affiche pas et la variable $debug (dont j'analyse le contenu en pas à pas) ne contient pas le flash message qui aurait dû être passé avec le RedirectResponse comme je l'ai vu dans les exemple.

    Comment faire passer ce flash message ?

    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    bizarre moi ca marche avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    /**
     * @Route("/first")
     */
    public function firstAction()
    {
        $message = "Opération réalisée";
        $this->get('session')->setFlash('statut', $message);
     
        return $this->redirect('display');
    }
     
    /**
     * @Route("/display")
     * @Template()
     */
    public function displayAction()
    {
        return array();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {% if app.session.hasFlash('statut') %}
        {{ app.session.flash('statut') }}
    {% else %}
        no statut
    {% endif %}

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Par défaut
    Tiens justement je me demande, quelle est la bonne pratique : faire un $this-redirect() ou un new RedirectResponse() ?

    J'ai trouvé l'erreur. Du CSS tout simplement, le flash message est bien dans le code source de la page. J'aurais du vérifier avant.

    Désolé.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fait plutôt $this->redirect y'a pas mal de méthodes à utiliser direct
    http://api.symfony.com/2.0/Symfony/B...ontroller.html

    Y'en aura encore plus avec la 2.1

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CakePHP] Flash message sous IE6
    Par pc.bertineau dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 24/08/2010, 18h38
  2. [FLASH 8] Composant Alert - Message trop long
    Par aldo-tlse dans le forum Flash
    Réponses: 2
    Dernier message: 02/12/2005, 19h58
  3. [FLASH MX] Message erreur
    Par fpoupee dans le forum Flash
    Réponses: 3
    Dernier message: 05/10/2005, 17h39
  4. Réponses: 2
    Dernier message: 06/12/2004, 21h38
  5. [FLASH MX 2004] message erreur de classe
    Par matN59 dans le forum Flash
    Réponses: 3
    Dernier message: 14/06/2004, 08h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo