Laravel Session


Session का use information को temporary store करने के लिए जाता है। या हम कह सकते हैं कि Session user data को temporary store करने का एक Alternative way है। Session में store data सभी pages पर accessible होता है , जिसे हम सभी pages पर access या modify कर सकते हैं।


Laravel Session Configuration

session में data store करने के लिए Laravel कई तरह के session drivers provide कराता है।

By Default Laravel file session deriver use करता है। जो कि लगभग सभी Web Applications के साथ easily work करता है।

Laravel में session configuration के लिए file config/session.php होती है। जहाँ हम अपनी need के according session settings को configurate कर।

PHP में session क्या होता है , और यह कैसे work करता है।

Laravel Supported Session Driver

  1. file - यह default driver होता है , session data framework/sessions store होता है।
  2. cookie - session data encrypted cookies की Form में store होता है।
  3. database - session data , Database Table में store होता है। 
  4. array - session data PHP Array की form में store होता है हालाँकि यह persistent नहीं होता है।

Laravel Database Session Driver

अगर आप session data store करने के लिए database driver use करने जा रहे हैं तो आपको database में नीचे दिए गए table structure के अक्सोर्डिंगक Table create करनी पड़ेगी।

Schema::create('sessions', function ($table) {
    $table->string('id')->unique();
    $table->foreignId('user_id')->nullable();
    $table->string('ip_address', 45)->nullable();
    $table->text('user_agent')->nullable();
    $table->text('payload');
    $table->integer('last_activity');
});

हालाँकि आप चाहे तो PHP artisan command session:table के through भी same schema generate कर सकते हैं।

php artisan session:table

php artisan migrate

Laravel Store Session Data

Laravel में session के साथ work करने के लिए तीन methods use किये जाते हैं।

  1. global session helper
  2. Session class
  3. request instance (request Object)

session data store करने के लिए हम put() method का use करते हैं।

Copy Fullscreen
/* Via Session class */
use Session; /*put this line in your controller before class declaration*/
Session::put('key' , 'value');

/* Via the global helper... */
session(['key' => 'value']);

/* Via a request instance... */
$request->session()->put('key', 'value');

/*Pushing To Array Session Values*/
$request->session()->push('item.color', 'Red');

Laravel Retrieve Session Data

Laravel में session data retrieve करने के लिए हम get() method का use करते हैं।

Copy Fullscreen
/* Via Session class */
use Session; /*put this line in your controller before class declaration*/
Session::get('key');

/* Via the global helper... */
session('key');

/* Via a request instance... */
$request->session()->get('key');

? हालाँकि session data retrieve करते समय हम key के साथ default value भी pass कर सकते हैं , अगर वो के exist नहीं करती या value null हुई तो default value मिल जायगी।

//via request instance
$value = $request->session()->get('key', 'default');

//via Session class
$value = Session::get('key', 'default');

//via global helper
$value = session('key', 'default');

Laravel Retrieve All Session Data

all() method का use करके आप complete session data को एक साथ access कर सकते हैं।

$data = $request->session()->all();
Or
$data = Session::all();

Laravel Delete Session Data

session से data delete करने के लिए हम forget() method का use करते हैं।

// Forget a single key...
$request->session()->forget('key');

// Forget multiple keys...
$request->session()->forget(['key1', 'key2']);

$request->session()->flush();

Laravel Session Flash

कभी कभी sesion में सिर्फ एक बार session data store करने की जरूरत पड़ती है , वहां आप flash() या with() method use कर सकते हैं।

$request->session()->flash('status', 'Task was successful!');

हालाँकि आप redirection के साथ भी इसे use कर सकते हैं।

/*to get back with a message*/
return back()->with('status', 'Task was successful!');

return redirect(URL)->with('status', 'Task was successful!');

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook