Les messages Flash dans Symfony

Les messages Flash dans Symfony
par Rémi Leclerc, le 22/12/2014

Un message Flash est un message qui n'apparaîtra qu'une fois sur la prochaine page de l'application. Il est généralement créé lors de la soumission d'un formulaire pour préciser à l'utilisateur le succès ou l'erreur d'un enregistrement ; juste après la redirection (ce qui est la bonne pratique lorsqu'un formulaire est validé par l'utilisateur pour éviter de le soumettre plusieurs fois en réactualisant la page).

// Dans votre contrôleur

$this->container->get('session')->getFlashBag()->add('success', 'Votre message a bien été enregistré.');
$this->container->get('session')->getFlashBag()->add('danger', 'L\'illustration qui accompagnait votre message n\'a pu être sauvegardée.');
 
return $this->redirect($this->generateUrl('liste_messages'));
{# Dans votre gabarit #}
 
{% for message in app.session.flashbag.get('success') %}
  <div class="alert alert-success">{{ message }}</div>
{% endfor %}
 
{% for message in app.session.flashbag.get('error') %}
  <div class="alert alert-error">{{ message }}</div>
{% endfor %}