Qu’est-ce qu’une session
HTTP est un protocole sans état : il ne dispose pas nativement d’un moyen de conserver des informations d’un utilisateur entre les requêtes. La session de Laravel fournit ce moyen sur plusieurs requêtes. État de connexion, contenu d’un panier, valeurs saisies dans un formulaire… placez en session tout ce que vous voulez conserver entre les requêtes.Configuration du driver de session
La configuration se trouve dansconfig/session.php.
Vous changez le driver via la variable SESSION_DRIVER (dans .env).
Le projet Laravel par défaut est configuré avec le driver
database. Une table sessions est nécessaire, mais elle est fournie par la migration par défaut.Accéder à la session
Deux façons d’accéder à la session : via une instanceRequest, ou via le helper global session().
Via l’instance Request
RecevezRequest par type-hint dans la méthode de contrôleur, puis appelez $request->session().
Via le helper session()
Le helper session() est utilisable depuis n’importe où (contrôleurs, vues…).
Opérations sur la session
Lecture
Vérification de présence
has et exists :
Écriture
Suppression
Données flash
Les données flash sont des données de session valides uniquement pour la requête suivante. Utiles pour les messages de confirmation d’un formulaire ou les erreurs à afficher une seule fois.Enregistrer avec flash()
Prolonger la durée des données flash
Afficher un message flash dans Blade
Exemple : message après envoi de formulaire
Après l’envoi d’un formulaire, enregistrer un message de succès en session et rediriger pour l’afficher à la page suivante est un pattern classique.1
Définition des routes
2
Implémentation du contrôleur
Dans
store, après enregistrement, redirigez avec un message de succès.redirect()->with('success', '...') est un raccourci qui pousse une donnée flash vers la destination.3
Afficher le message dans le layout
Ajoutez l’affichage des messages flash à
resources/views/layouts/app.blade.php.4
Créer la vue de liste
Combinaison avec les erreurs de validation
En cas d’échec de validation, combinez avecback()->withErrors().
Laravel place automatiquement les erreurs en flash data : la variable $errors est disponible dans Blade.
Prochaines étapes
Validation
Découvrez comment valider les données saisies dans les formulaires.