Session được sử dụng để lưu trữ thông tin về người dùng trong các yêu cầu. Laravel cung cấp nhiều trình điều khiển khác nhau như tệp, cookie, apc, mảng, Memcached, Redis và cơ sở dữ liệu để xử lý dữ liệu Session . Theo mặc định, trình điều khiển tệp được sử dụng vì nó nhẹ. Session có thể được cấu hình trong tệp được lưu trữ tại config/session.php .
Truy cập dữ liệu Session
Để truy cập dữ liệu Session , chúng tôi cần một phiên bản Session có thể được truy cập thông qua yêu cầu HTTP. Sau khi nhận được Session bản, chúng ta có thể sử dụng phương thức get() , phương thức này sẽ nhận một đối số, “key” , để lấy dữ liệu Session .
$value = $request->session()->get('key');
Bạn có thể sử dụng phương thức all() để lấy tất cả dữ liệu Session thay vì phương thức get() .
Lưu trữ dữ liệu Session
Dữ liệu có thể được lưu trữ trong Session sử dụng phương thức put() . Phương thức put() sẽ nhận hai đối số là “key” và “value” .
$request->session()->put('key', 'value');
Xóa dữ liệu Session
Phương thức forget() được sử dụng để xóa một mục khỏi Session . Phương thức này sẽ lấy “key” làm đối số.
$request->session()->forget('key');
Sử dụng phương thức flush() thay vì phương thức forget() để xóa tất cả dữ liệu Session . Sử dụng phương thức pull() để lấy dữ liệu từ phiên và xóa nó sau đó. Phương thức pull() cũng sẽ lấy khóa làm đối số. Sự khác biệt giữa phương thức forget() và pull() là phương thức forget() sẽ không trả về giá trị của Session và phương thức pull() sẽ trả về giá trị đó và xóa giá trị đó khỏi Session .
Thí dụ
Bước 1 – Tạo bộ điều khiển có tên là SessionController bằng cách thực hiện lệnh sau.
php artisan make:controller SessionController --plain
Bước 2 – Sau khi thực hiện thành công, bạn sẽ nhận được đầu ra sau –
Bước 3 – Sao chép đoạn 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."; } }
Bước 4 – Thêm các dòng sau vào tệp app/Http/routes.php .
app/Http/routes.php
Route::get('session/get','SessionController@accessSessionData'); Route::get('session/set','SessionController@storeSessionData'); Route::get('session/remove','SessionController@deleteSessionData');
Bước 5 – Truy cập URL sau để đặt dữ liệu trong phiên .
http://localhost:8000/session/set
Bước 6 – Đầu ra sẽ xuất hiện như trong hình dưới đây.
Bước 7 – Truy cập URL sau để lấy dữ liệu từ phiên .
http://localhost:8000/session/get
Bước 8 – Đầu ra sẽ xuất hiện như trong hình dưới đây.
Bước 9 – Truy cập URL sau để xóa dữ liệu phiên .
http://localhost:8000/session/remove
Bước 10 – Bạn sẽ thấy một thông báo như trong hình dưới đây.