3. Sử dụng session Lưu trữ dữ liệu (Storing data) (Using the session)

https://viblo.asia/p/tap-19-session-laravel-m68Z0xmAZkG

Có hai hướng chính để làm việc với session trong Laravel framework:

  1. Thông qua lớp khởi tạo Illuminate\Http\Request.

  2. Sử dụng global helper session.

1. Lưu trữ dữ liệu (Storing data)

Để lưu trữ một session, bạn có thể cân nhắc lựa chọn method put từ object Illuminate\Http\Request hoặc sử dụng global helper session.

Với method put từ object Illuminate\Http\Request:

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

Với global helper session:

session(['key' => 'value']);

Bạn có thể push một item session vào mảng của nó bằng cách sử dụng dấu . để tham chiếu. trong method push:

$request->session()->push('user.username', 'lechihuy');

hoặc thông qua global helper session:

session(['user.username' => 'lechihuy']);

Bây giờ chúng ta hãy thử kiểm tra xem session có thực sự được lưu trữ hay không?

Hãy thử đăng ký một route để thực hiện store session như bên dưới:

Route::get('/session', function() {
    session(['name' => 'Lê Chí Huy']);
});

hoặc

use Illuminate\Http\Request;

Route::get('/session', function (Request $requets) {
    $request->session()->put('name', 'Lê Chí Huy');
});

Nếu bạn đang sử dụng driver file, bạn hãy mở các file trong thư mục storage/framework/sessions, bạn sẽ tìm ra được session mà bạn vừa lưu trữ.

Nếu bạn sử dụng driver cookie, các session sẽ được lưu trữ dưới dạng cookie, được mã hóa để người dùng không thể xem hoặc chỉnh sửa.

Lưu ý: Bạn có thể tắt chế độ mã hóa session tương tự như một cookie.

Nếu bạn đang sử dụng driver database, bạn có thể vào database của mình sau đó truy vấn đến table sessions.

Như bạn thấy, driver database cũng mã hóa các session để tăng tính bảo mật.

Còn nếu bạn sử dụng driver array thì như đã nói ở trên, nó không lưu trữ ở bất kỳ đâu cả, các session sẽ biến mất ở request kế tiếp.

Last updated