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 :

Affichage d'un message flash dans twig


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut Affichage d'un message flash dans twig
    Bonjour,

    Dans un service, je crée un message flash comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $request->getSession()->getFlashBag()->add('error', $exception->getMessage());
    Cependant, dans twig, lorsque je fais
    Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ dump(app.session.flashbag) }}
    , j'obtiens :

    object(Symfony\Component\HttpFoundation\Session\Flash\FlashBag)[470]
    private 'name' => string 'flashes' (length=7)
    private 'flashes' =>
    array (size=0)
    empty
    private 'storageKey' => string '_symfony_flashes' (length=16)
    Si je fais,
    Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
    {{ dump(app.flashes) }}
    , j'obtiens :

    array (size=0)
    empty
    Or, dans mon service,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dump($exception->getMessage());
    me donne bien
    Bad credentials
    Quelqu'un aurait une idée de la manière dont je dois procéder pour afficher l'erreur dans mon template?

    Merci d'avance pour votre aide.

  2. #2
    Membre habitué
    Homme Profil pro
    Developpeur
    Inscrit en
    Juillet 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Juillet 2014
    Messages : 102
    Points : 153
    Points
    153
    Par défaut
    La façon de faire semble bonne.

    Dans twig
    Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
    app.flashes('error')
    devrait renvoyer un tableau contenant toutes les erreurs.

    A quelle endroit la $request est elle modifiée ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Bonjour,

    Merci pour ton intérêt. J'ai résolu le problème, mais de façon "non propre".

    J'ai remarqué que l'affichage était ok si c'était hors d'un div modal, mais ne s'affichait pas dans le div modal. J'ai donc créé une variable récupérant les erreurs en dehors du div, puis je parcours cette variable dans le div. C'est moche, je ne comprends pas pourquoi ça fonctionne comme ça, mais ça fonctionne :

    Code twig : 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
    20
    21
    22
    23
    24
            ...
           {% set messages = app.flashes %}
    
            <!-- Modal -->
            {% if app.flashes|length > 0 %}          
              <div id="loginModal" class="modal fade" role="dialog" data-visibility='1'>
            {% else %}
              <div id="loginModal" class="modal fade" role="dialog" data-visibility='0'>          
            {% endif %}        
            
                <div class="modal-dialog">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h4 class="modal-title">Login</h4>
                        </div>
                        <div class="modal-body">
                          <div>                  
                            {% for message in messages %}
                              <div class="alert alert-danger">
                                {{ message[0] }}
                              </div>
                            {% endfor %}
                          </div>

    Si je tente de parcourir directement app.flashes dans mon div, rien ne s'affiche. Je n'en comprends pas la cause.

Discussions similaires

  1. [Flash Pascal] Affichage d'une animation Flash dans un programme Lazarus
    Par Roland Chastain dans le forum Flash Pascal
    Réponses: 3
    Dernier message: 27/09/2015, 21h37
  2. [FLASH 8] Affichage contenu d'un champ Flash dans php
    Par carmen256 dans le forum Flash
    Réponses: 4
    Dernier message: 15/02/2007, 15h57
  3. Réponses: 4
    Dernier message: 11/07/2006, 22h58
  4. [FLASH] Affichage de flash dans mozilla
    Par Bkan dans le forum Flash
    Réponses: 7
    Dernier message: 02/03/2006, 19h18
  5. [FLASH 8] Problème d'affichage flash dans ie
    Par ph_anrys dans le forum Flash
    Réponses: 5
    Dernier message: 22/02/2006, 14h58

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