Home Tutorial Laravel Laravel – Bài 15: Session

Laravel – Bài 15: Session

8 min read
0
280

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 –

Phiên điều khiển

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.

Dữ liệu trong phiên

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.

Virat Gandhi

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.

Phiên họp

Load More Related Articles
Load More By quangvu
  • Laravel – Bài 11: Error Handling

    Hầu hết các ứng dụng web đều có cơ chế cụ thể để xử lý lỗi. Bằng cách sử dụng chúng, họ th…
  • Laravel – Bài 16 Authentication (xác thực)

    Xác thực là quá trình xác định thông tin đăng nhập của người dùng. Trong các ứng dụng web,…
  • Laravel – Bài 14: Redirections

    Để đặt tên cụ thể cho một tuyến đường, có thể được chỉ định bằng cách sử dụng khóa mảng “a…
Load More In Laravel

Check Also

Tự làm web chatGPT đơn giản cho phép dùng nhiều OpenAI key

Trong thời đại công nghệ phát triển như hiện nay, chatbot đang dần trở thành một giải pháp…