Symfony - Réglage du Flash et de la Vérification dans TWIG
Je suis en train de mettre du Flash dans mon contrôleur, puis vérifier dans TWIG si un Flash a été défini. Mon problème est que TWIG signale toujours que mon Flash n'a pas été fixée et je ne suis pas sûr pourquoi.
Contrôleur:
$session->getFlashBag()->add('error', 'Does Not Exist');
TWIG:
{{ dump( app.session.hasFlash('error') ) }} //outputs false
{{ dump( app.session.getFlashBag().get('error') ) }} //outputs false
OriginalL'auteur Jon | 2013-01-22
Vous devez vous connecter pour publier un commentaire.
Dans Le Contrôleur
Dans Twig
FYI: Doc
{{ dump(flashMessage) }}
dans TWIG, je n'ai même pas rien voir apparaître sur l'écran.La précédente gars qui a travaillé sur le contrôleur créé une nouvelle session via
$session = new Session();
. Dois-je être en se référant à la session via$session
au lieu de par$this->get('session')
?Nm, il a fonctionné à merveille.
Voici la dernière de la documentation: symfony.com/doc/current/components/http_foundation/...
Quelque chose comme cela possible? (Si l'utilisateur appuie sur la touche F5, puis ce sera gérée dans le contrôleur):
if (isset(flashMessage)) { return $this->render('MyBundle:Default:m.html.twig'); } else { //redirect to home page }
OriginalL'auteur Venu
OriginalL'auteur Kishan Patel
Il est intéressant de noter que dans Symfony 3.3 et nous pouvons utiliser la version simplifiée
app.flashes()
. Exemple:Source
OriginalL'auteur Albert221
il s simplifiée dans symfony 4 (il travaille en 3.4 trop)
Votre contrôleur :
Twig :
{% if app.flashes is not empty %}
efface les messages, et c'est vide dans la prochainefor
boucle. Comment puis-je utiliserpeek()
oupeekAll()
comme{% if peekAll() is not empty %}
J'ai posé une nouvelle question - stackoverflow.com/q/53010910/3790921
OriginalL'auteur Guillaume Harari
Utilisation FlashAlertBundle, il fournit un moyen simple de gérer (ajouter/affichage) Symfony messages flash.
Disponibles par le biais de
https://github.com/rasanga/FlashAlertBundle
https://packagist.org/packages/ras/flash-alert-bundle
Vous avez juste besoin d'une seule ligne
pour rendre les messages flash
OriginalL'auteur Dead-Man