Hướng Dẫn Sử Dụng Laravel session() Chi Tiết Từ A-Z | DCSoft Tech

  • Home
  • Hướng Dẫn Sử Dụng Laravel session() Chi Tiết Từ A-Z | DCSoft Tech
by:DCSoftTech Editorial Team Tháng mười một 5, 2026 0 Comments

1. Các cách truy cập Session trong Laravel

Laravel cung cấp 3 cách chính để tương tác với Session, tùy thuộc vào ngữ cảnh code của bạn:

Sử dụng Request Instance

Thường được dùng trong các Controller method:

PHP

use Illuminate\Http\Request;

public function store(Request $request)
{
    $value = $request->session()->get('key');
}

Sử dụng Facade Session

Có thể gọi ở bất kỳ đâu trong ứng dụng:

PHP

use Illuminate\Support\Facades\Session;

Session::put('key', 'value');
$value = Session::get('key');

Sử dụng Global Helper session()

Cách ngắn gọn và phổ biến nhất:

PHP

// Lấy hoặc gán giá trị
session(['key' => 'value']);
$value = session('key');

2. Các thao tác cơ bản với Session

Lưu trữ dữ liệu

PHP

// Dùng helper session()
session(['user_id' => 123]);

// Dùng phương thức put
session()->put('cart.count', 5);

// Thêm phần tử mới vào một mảng trong session (push)
session()->push('user.teams', 'developers');

Đọc dữ liệu

PHP

// Lấy giá trị thông thường kèm giá trị mặc định nếu key không tồn tại
$name = session('name', 'Guest'); 

// Lấy toàn bộ dữ liệu session hiện tại
$data = session()->all();

// Kiểm tra key có tồn tại không (kể cả giá trị null)
if (session()->has('user_id')) {
    // ...
}

// Kiểm tra key có tồn tại và khác null hay không
if (session()->exists('user_id')) {
    // ...
}

Xóa dữ liệu

PHP

// Xóa một key cụ thể
session()->forget('user_id');

// Xóa nhiều key cùng lúc
session()->forget(['user_id', 'role']);

// Xóa toàn bộ session trong request hiện tại
session()->flush();

3. Flash Data (Dữ liệu tạm thời)

Flash data rất hữu ích khi bạn muốn lưu trữ dữ liệu chỉ dùng cho request tiếp theo, sau đó nó sẽ tự động bị xóa. Thường dùng cho các thông báo thành công hoặc lỗi (Flash Message).

PHP

// Lưu flash data
session()->flash('success', 'Cập nhật dữ liệu thành công!');

// Giữ flash data cho request tiếp theo nữa
session()->reflash();

// Giữ lại một vài key cụ thể cho request kế tiếp
session()->keep(['success', 'message']);

Trong Blade template, bạn hiển thị thông báo rất dễ dàng:

HTML

@if (session('success'))
    <div class="alert alert-success">
        {{ session('success') }}
    </div>
@endif

4. Cấu hình Session (config/session.php)

Laravel hỗ trợ nhiều driver lưu trữ session khác nhau được định nghĩa trong file config/session.php:

  • file: Lưu trong thư mục storage/framework/sessions (mặc định cho môi trường local).

  • database: Lưu vào bảng sessions trong cơ sở dữ liệu (tối ưu khi scale hệ thống hoặc chạy multi-server).

  • redis / memcached: Lưu trên bộ nhớ đệm tốc độ cao.

  • cookie: Lưu mã hóa trực tiếp trong cookie của trình duyệt.

Bạn có thể cấu hình nhanh thông qua file .env:

Đoạn mã

SESSION_DRIVER=database
SESSION_LIFETIME=120

5. Tổng kết

Việc nắm vững cách quản lý Session trong Laravel giúp bạn xây dựng các tính năng xác thực, giỏ hàng, thông báo trạng thái người dùng một cách mượt mà và bảo mật.

Categories:

Leave Comment

Tháng mười một 2026
H B T N S B C
 1
2345678
9101112131415
16171819202122
23242526272829
30