Laravel - Oturum

Oturumlar, istekler arasında kullanıcı hakkındaki bilgileri depolamak için kullanılır. Laravel aşağıdaki gibi çeşitli sürücüler sağlarfile, cookie, apc, array, Memcached, Redis, ve databaseoturum verilerini işlemek için. Varsayılan olarak, hafif olduğu için dosya sürücüsü kullanılır. Oturum, şu adreste depolanan dosyada yapılandırılabilir:config/session.php.

Oturum Verilerine Erişim

Oturum verilerine erişmek için, HTTP isteği aracılığıyla erişilebilen bir oturum örneğine ihtiyacımız var. Örneği aldıktan sonra,get() bir argüman alacak yöntem, “key”, oturum verilerini almak için.

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

Kullanabilirsiniz all() yerine tüm oturum verilerini alma yöntemi get() yöntem.

Oturum Verilerinin Saklanması

Veriler oturumda saklanabilir. put()yöntem. put() yöntem iki argüman alacaktır, “key” ve “value”.

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

Oturum Verilerini Silme

forget()yöntemi oturumdan bir öğeyi silmek için kullanılır. Bu yöntem alacak“key” argüman olarak.

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

Kullanım flush() yerine yöntem forget()tüm oturum verilerini silme yöntemi. Kullanpull()verileri oturumdan alma ve daha sonra silme yöntemi. Pull () yöntemi dekeyargüman olarak. Arasındaki farkforget() ve pull() yöntem şudur forget() yöntem oturumun değerini döndürmez ve pull() yöntem onu ​​döndürür ve bu değeri oturumdan siler.

Misal

Step 1 - adlı bir denetleyici oluşturun SessionController aşağıdaki komutu yürüterek.

php artisan make:controller SessionController --plain

Step 2 - Başarılı bir yürütmeden sonra, aşağıdaki çıktıyı alacaksınız -

Step 3 - Aşağıdaki kodu bir dosyaya kopyalayın

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 - Şu satırları şuraya ekleyin: app/Http/routes.php dosya.

app/Http/routes.php

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

Step 5 - Aşağıdaki URL'yi ziyaret edin set data in session.

http://localhost:8000/session/set

Step 6 - Çıktı aşağıdaki resimde gösterildiği gibi görünecektir.

Step 7 - Aşağıdaki URL'yi ziyaret edin get data from session.

http://localhost:8000/session/get

Step 8 - Çıktı aşağıdaki resimde gösterildiği gibi görünecektir.

Step 9 - Aşağıdaki URL'yi ziyaret edin remove session data.

http://localhost:8000/session/remove

Step 10 - Aşağıdaki resimde gösterildiği gibi bir mesaj göreceksiniz.