FlashHelper fournit une façon de rendre les messages flash qui sont définis dans
$_SESSION
par FlashComponent.
FlashComponent et FlashHelper
utilisent principalement des elements pour rendre les messages flash. Les
elements flash se trouvent dans le répertoire app/View/Elements/Flash
.
Vous remarquerez que le template de l’App de CakePHP est livré avec deux
elements flash: success.ctp
et error.ctp
.
FlashHelper remplace la méthode flash()
de SessionHelper
et doit être utilisé à la place de cette méthode.
Pour afficher un message flash, vous pouvez simplement utiliser la méthode
render()
du FlashHelper:
<?php echo $this->Flash->render() ?>
Par défaut, CakePHP utilise une clé « flash » pour les messages flash dans une session. Mais si vous spécifiez une clé lors de la définition du message flash dans FlashComponent, vous pouvez spécifier la clé flash à rendre:
<?php echo $this->Flash->render('other') ?>
Vous pouvez aussi surcharger toutes les options qui sont définies dans FlashComponent:
// Dans votre Controller
$this->Flash->set('The user has been saved.', array(
'element' => 'success'
));
// Dans votre View: Va utiliser great_success.ctp au lieu de success.ctp
<?php echo $this->Flash->render('flash', array(
'element' => 'great_success'
));
Note
Par défaut, CakePHP n’échappe pas le HTML dans les messages flash. Si vous
utilisez une requête ou des données d’utilisateur dans vos messages flash,
vous devez les échapper avec h
lors du formatage de vos
messages.
Nouveau dans la version 2.10.0: Le FlashComponent empile maintenant
les messages. Si vous définissez plusieurs messages, lors d’un appel à
render()
, chaque message sera rendu dans son élément, dans l’ordre
dans lequel les messages ont été définis.
Pour plus d’informations sur le tableau d’options disponibles, consultez la section FlashComponent.