Thumbnail
Category: Laravel

Session trong Laravel

Date: March 5, 2020
25 views

1. Session là gì?

Session theo tiếng anh là phiên. Đúng vậy session giúp chúng ta lưu lại một phiên làm việc của người dùng. Một phiên có hiệu lực khi bạn gắn và mất khi bạn xóa đi hoặc đóng trình duyệt. Phiên rất hữu ích cho chúng ta để xác thực người dùng vì vậy chúng rất hữu ích cho các developer.

2. Cách sử dụng session trong Laravel 6

2.1 Lấy thông qua Request

Mình đã có một bài viết rất chi tiết về Request này, bạn xem tại Request trong Laravel.


<?php
namespace App\Http\Controllers;
​
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
​
class UserController extends Controller
{
​
     public function show(Request $request, $id)
     {
          $value = $request->session()->get('key');
          //
     }
}
​
//tạo session
$request->session()->put('key', 'value');

Nếu Session không tồn tại thì xử lý như thế nào?


//Trả về giá trị mặc định
$value = $request->session()->get('key', 'default');
​
$value = $request->session()->get('key', function () {
     return 'default';
});

2.2 Lấy thông qua Session


Route::get('home', function () {
     // lấy dữ liệu của một key
     $value = session('key');
     // lấy dữ liệu của một key, nếu không tồn tại sẽ trả về mặc định.
     $value = session('key', 'default');
     // tạo session
     session(['key' => 'value']);
});

2.3 Lấy toàn bộ dữ liệu Session


$data = $request->session()->all();

2.4 Kiểm tra tồn tại session


//không tính null
if ($request->session()->has('users')) {
//
}
​
//null cũng được nếu nó là giá trị của session được gán
if ($request->session()->exists('users')) {
//
}
​

2.5 Xài một lần rồi bỏ


//chỉ áp dụng cho 1 hành động tiếp theo
$request->session()->flash('status', 'Task was successful!');

2.6 Xóa session


// xóa một session
$request->session()->forget('key');
// xóa nhiều session
$request->session()->forget(['key1', 'key2']);
// xóa tất cả session
$request->session()->flush();

Kết Luận

Như vậy mình đã hướng dẫn các bạn sử dụng Session trong laravel 6. Bản thân mình nghĩ chỉ nên nhớ một cách sử dụng thôi thì tốt hơn là nhớ nhiều cách vì chúng làm việc cũng tương tự nhau. Bản thân mình thì sử dụng Request để làm mọi thứ với session vì nó tiện hơn. Bài viết sau mình sẽ hướng dẫn các bạn Validate trong Laravel.


Copyright © 2025 All Right Reserved