Comme avec tout langage de programmation Web côté serveur, il est possible d'utiliser des variables de session sous Laravel.
Plusieurs techniques s'offrent à vous :
Alors que les deux premières sont toujours disponibles, la troisième ne pourra être utilisée que lorsqu'un paramètre recevra une référence à la requête HTTP (ex : Request $request).
Et pour utiliser la façade, vous pouvez soit la précéder d'une barre oblique inverse (\Session::put(...)) ou encore ajouter use Session; en haut de la page.
Voici, pour chacune des trois techniques, la syntaxe pour effectuer les tâches courantes avec les variables de session.
Fonction d'aide session() :
session(['cle' => 'valeur']);
Façade Session :
Session::put('cle', 'valeur');
Requête HTTP :
$request->session()->put('cle', 'valeur');
Fonction d'aide session() :
$valeur = session('cle');
Façade Session :
$valeur = Session::get('cle');
Requête HTTP :
$valeur = $request->session()->get('cle');
Fonction d'aide session() :
if (session()->has('cle')) {
...
}
Façade Session :
if (Session::has('cle')) {
...
}
Requête HTTP :
if ($request->session()->has('cle')) {
...
}
Fonction d'aide session() :
\Log::debug(session()->all());
Façade Session :
\Log::debug(Session::all());
Requête HTTP :
\Log::debug($request->session()->all());
Fonction d'aide session() :
session(['cle' => null]);
Notez que ceci ne donne pas le même résultat qu'avec les deux autres techniques car la variable sera toujours visible avec session()->all() mais elle aura la valeur null. L'utilisation de if (session()->has('cle')) retournera false, comme souhaité.
Façade Session :
Session::forget('cle');
Requête HTTP :
$request->session()->forget('cle');
« Session ». Laravel. https://laravel.com/docs/master/session
« Configuration et session ». OpenClassrooms. https://openclassrooms.com/courses/decouvrez-le-framework-php-laravel/l-injection-de-dependance
▼Publicité