Laravel - Session

Les sessions sont utilisées pour stocker des informations sur l'utilisateur à travers les demandes. Laravel fournit divers pilotes commefile, cookie, apc, array, Memcached, Redis, et databasepour gérer les données de session. Par défaut, le pilote de fichier est utilisé car il est léger. La session peut être configurée dans le fichier stocké àconfig/session.php.

Accéder aux données de session

Pour accéder aux données de session, nous avons besoin d'une instance de session accessible via une requête HTTP. Après avoir obtenu l'instance, nous pouvons utiliser leget() méthode, qui prendra un argument, “key”, pour obtenir les données de session.

$value = $request->session()->get('key');

Vous pouvez utiliser all() méthode pour obtenir toutes les données de session au lieu de get() méthode.

Stockage des données de session

Les données peuvent être stockées en session à l'aide du put()méthode. leput() la méthode prendra deux arguments, la “key” et le “value”.

$request->session()->put('key', 'value');

Suppression des données de session

le forget()est utilisée pour supprimer un élément de la session. Cette méthode prendra“key” comme argument.

$request->session()->forget('key');

Utilisation flush() méthode au lieu de forget()méthode pour supprimer toutes les données de session. Utilisez lepull()méthode pour récupérer les données de la session et les supprimer par la suite. La méthode pull () prendra égalementkeycomme argument. La différence entre leforget() et le pull() la méthode est que forget() ne retournera pas la valeur de la session et pull() La méthode la renverra et supprimera cette valeur de la session.

Exemple

Step 1 - Créez un contrôleur appelé SessionController en exécutant la commande suivante.

php artisan make:controller SessionController --plain

Step 2 - Après une exécution réussie, vous recevrez la sortie suivante -

Step 3 - Copiez le code suivant dans un fichier à

app/Http/Controllers/SessionController.php.

app/Http/Controllers/SessionController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class SessionController extends Controller {
   public function accessSessionData(Request $request) {
      if($request->session()->has('my_name'))
         echo $request->session()->get('my_name');
      else
         echo 'No data in the session';
   }
   public function storeSessionData(Request $request) {
      $request->session()->put('my_name','Virat Gandhi');
      echo "Data has been added to session";
   }
   public function deleteSessionData(Request $request) {
      $request->session()->forget('my_name');
      echo "Data has been removed from session.";
   }
}

Step 4 - Ajoutez les lignes suivantes à app/Http/routes.php fichier.

app/Http/routes.php

Route::get('session/get','[email protected]');
Route::get('session/set','[email protected]');
Route::get('session/remove','[email protected]');

Step 5 - Visitez l'URL suivante pour set data in session.

http://localhost:8000/session/set

Step 6 - La sortie apparaîtra comme indiqué dans l'image suivante.

Step 7 - Visitez l'URL suivante pour get data from session.

http://localhost:8000/session/get

Step 8 - La sortie apparaîtra comme indiqué dans l'image suivante.

Step 9 - Visitez l'URL suivante pour remove session data.

http://localhost:8000/session/remove

Step 10 - Vous verrez un message comme indiqué dans l'image suivante.