Skip to main content

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 dans config/session.php. Vous changez le driver via la variable SESSION_DRIVER (dans .env).
Drivers pris en charge par défaut :
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 instance Request, ou via le helper global session().

Via l’instance Request

Recevez Request 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…).
Les deux approches se testent avec assertSessionHas. Dans un contrôleur, $request->session() rend la dépendance explicite.

Opérations sur la session

Lecture

Vérification de présence

Différence entre 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()

Elles restent disponibles à la requête suivante, puis sont automatiquement supprimées.

Prolonger la durée des données flash

Afficher un message flash dans Blade

Placez l’affichage des messages flash dans un layout (layouts/app.blade.php) pour un affichage cohérent sur toutes les pages.

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

Après enregistrement puis redirection, la page affiche une fois le message « Publication créée. ».

Combinaison avec les erreurs de validation

En cas d’échec de validation, combinez avec back()->withErrors(). Laravel place automatiquement les erreurs en flash data : la variable $errors est disponible dans Blade.
flush() supprime toutes les données de session, y compris l’état de connexion. Utilisez plutôt forget() pour cibler des clés précises.

Prochaines étapes

Validation

Découvrez comment valider les données saisies dans les formulaires.
Dernière modification le 13 juillet 2026