Laravel - Phiên

Phiên được sử dụng để lưu trữ thông tin về người dùng trên các yêu cầu. Laravel cung cấp các trình điều khiển khác nhau nhưfile, cookie, apc, array, Memcached, Redis,databaseđể xử lý dữ liệu phiên. Theo mặc định, trình điều khiển tệp được sử dụng vì nó nhẹ. Phiên có thể được định cấu hình trong tệp được lưu trữ tạiconfig/session.php.

Truy cập dữ liệu phiên

Để truy cập dữ liệu phiên, chúng tôi cần một phiên bản có thể được truy cập thông qua yêu cầu HTTP. Sau khi nhận được phiên bản, chúng tôi có thể sử dụngget() phương thức này sẽ nhận một đối số, “key”, để lấy dữ liệu phiên.

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

Bạn có thể dùng all() để lấy tất cả dữ liệu phiên thay vì get() phương pháp.

Lưu trữ dữ liệu phiên

Dữ liệu có thể được lưu trữ trong phiên sử dụng put()phương pháp. Cácput() phương thức sẽ nhận hai đối số, “key”“value”.

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

Xóa dữ liệu phiên

Các forget()được sử dụng để xóa một mục khỏi phiên. Phương pháp này sẽ“key” như đối số.

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

Sử dụng flush() phương pháp thay vì forget()phương pháp xóa tất cả dữ liệu phiên. Sử dụngpull()để lấy dữ liệu từ phiên và xóa nó sau đó. Phương thức pull () cũng sẽ sử dụngkeynhư đối số. Sự khác biệt giữaforget()pull() phương pháp đó là forget() phương thức sẽ không trả về giá trị của phiên và pull() phương thức sẽ trả về nó và xóa giá trị đó khỏi phiên.

Thí dụ

Step 1 - Tạo một bộ điều khiển được gọi là SessionController bằng cách thực hiện lệnh sau.

php artisan make:controller SessionController --plain

Step 2 - Sau khi thực hiện thành công, bạn sẽ nhận được kết quả sau:

Step 3 - Sao chép mã sau vào một tệp tại

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 - Thêm các dòng sau tại app/Http/routes.php tập tin.

app/Http/routes.php

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

Step 5 - Truy cập URL sau để set data in session.

http://localhost:8000/session/set

Step 6 - Đầu ra sẽ xuất hiện như trong hình sau.

Step 7 - Truy cập URL sau để get data from session.

http://localhost:8000/session/get

Step 8 - Đầu ra sẽ xuất hiện như trong hình sau.

Step 9 - Truy cập URL sau để remove session data.

http://localhost:8000/session/remove

Step 10 - Bạn sẽ thấy một thông báo như trong hình sau.