Laravel - Session

Laravel - Session

Sessions are used to store information about the user across all requests. Laravel provides various drivers like file, cookie, apc, array, Memcached, Redis and database to handle session data. The file driver is used by default because it is lightweight. The session can be configured in a file stored in config/session.php .

Accessing session data

To access session data, we need a session instance that can be accessed via an HTTP request. After getting the instance, we can use the get() method, which will receive one "key" argument to get the session data.

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

You can use the all() method to get all session data instead of the get() method .

Session data storage

Data can be stored in a session using the put() method . The put() method will take two arguments, "key" and "value" .

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

Deleting session data

The Forgot() method is used to remove an element from a session. This method will accept "key" as an argument.

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

Use the flush() method instead of the Forgot() method to remove all session data. Use the pull() method to retrieve data from a session and then delete it. The pull() method will also take a key as an argument. The difference between the Forgot() method and the pull() method is that the Forgot() method does not return a session value, while the pull() method returns one and removes that value from the session.

example

Step 1 − Create a controller named SessionController by running the following command.

php artisan make:controller SessionController --plain

Step 2 − Upon successful execution, you will get the following output −

Step 3 - Copy the following code to a file at

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 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 − Add the following lines to app/Http/rout.php file .

app/http/routes.php

Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');

Step 5 − Visit the following URL to set data in session .

http://localhost:8000/session/set

Step 6 − The output will look as shown in the following image.

Step 7 − Visit the following URL to get the data from the session .

http://localhost:8000/session/get

Step 8 − The output will look as shown in the following image.

Step 9 − Visit the following URL to delete session data .

http://localhost:8000/session/remove

Step 10 − You will see a message as shown in the following image.