Équivalent du Component Session, le Helper Session offre la majorité des
fonctionnalités du component et les rend disponible dans votre vue.
Le Helper session est automatiquement ajouté à la vue, il n’est pas nécessaire
de l’ajouter à la variable tableau $helpers
dans votre controller.
La grande différence entre le Component Session et le Helper Session est que ce dernier ne peut pas écrire dans la session.
Comme pour le Component Session, les données sont écrites et lues en utilisant des structures de tableaux avec la notation avec points, comme ci-dessous:
array('User' =>
array('username' => '[email protected]')
);
Étant donné ce tableau, le nœud sera accessible par User.username
, le point
indiquant le tableau imbriqué. Cette notation est utilisée pour toutes les
méthodes du helper Session où une variable $key
est utilisée.
mixed
Lire à partir de la Session. Retourne une chaîne de caractère ou un tableau dépendant des contenus de la session.
mixed
Lit et supprime une valeur de Session. C’est utile quand vous voulez combiner la lecture et la suppression de valeurs en une seule opération.
boolean
Vérifie si une clé est dans la Session. Retourne un boléen sur l’existence d’un clé.
string
Retourne la dernière erreur rencontrée dans une session.
boolean
Utilisée pour vérifier si une session est valide dans une vue.
Obsolète depuis la version 2.7.0: Vous devez utiliser Flash pour afficher les messages flash.
Comme expliqué dans Création de messages de notification vous pouvez créer
des notifications uniques pour le feedback. Après avoir créé les messages
avec SessionComponent::setFlash()
, vous voudrez les afficher.
Une fois que le message est affiché, il sera retiré et ne s’affichera plus:
echo $this->Session->flash();
Ce qui est au-dessus sortira un message simple, avec le HTML suivant:
<div id="flashMessage" class="message">
Vos trucs on été sauvegardés.
</div>
Comme pour la méthode du component, vous pouvez définir des propriétés supplémentaires et personnaliser quel élément est utilisé. Dans le controller, vous pouvez avoir du code comme:
// dans un controller
$this->Session->setFlash("L'utilisateur n'a pas pu être supprimé.");
Quand le message sort, vous pouvez choisir l’élément utilisé pour afficher ce message:
// dans un layout.
echo $this->Session->flash('flash', array('element' => 'failure'));
Ceci utilise View/Elements/failure.ctp
pour rendre le message. Le
message texte sera disponible dans une variable $message
dans l’élément.
A l’intérieur du fichier élément d’échec, il y aura quelque chose comme ceci:
<div class="flash flash-failure">
<?php echo $message ?>
</div>
Vous pouvez aussi passer des paramètres supplémentaires dans la méthode
flash()
, ce qui vous permet de générer des messages personnalisés:
// Dans le controller
$this->Session->setFlash('Merci pour votre paiement %s');
// Dans le layout.
echo $this->Session->flash('flash', array(
'params' => array('name' => $user['User']['name'])
'element' => 'payment'
));
// View/Elements/payment.ctp
<div class="flash payment">
<?php printf($message, h($name)); ?>
</div>