Laravel – Cookie

Tạo Cookie

Trong Laravel, cookie được tạo bởi global cookie helper, một instance của class Symfony\Component\HttpFoundation\Cookie. Cookie có thể được gắn vào response thông qua phương thức withCookie() của class Illuminate\Http\Response.

Cookie được tạo bởi Laravel sẽ được mã hóa và đăng ký do đó không thể thay đổi hay xem ở phía người dùng.

//Create a response instance
$response = new Illuminate\Http\Response('Hello World');

//Call the withCookie() method with the response method
$response->withCookie(cookie('name', 'value', $minutes));

//return the response
return $response;

Hàm Cookie() ở trên nhận 3 tham số là tên, giá trị vào thời gian tồn tại (Phút). Sau thời gian này, cookie sẽ tự động được xóa.

Bạn có thể set giá trị forever cho cookie thông qua hàm forever() như bên dưới.

$response->withCookie(cookie()->forever('name', 'value'));

Lấy cookie

sau khi tạo và gắn cookie vào Response. Chúng ta cần lấy cookie. Để làm việc này ta dùng hàm cookie() với 1 tham số là tên của cookie. Hàm này được gọi bằng cách dùng instance của class Illuminate\Http\Request.

//'name' is the name of the cookie to retrieve the value of
$value = $request->cookie('name');

Ví dụ :

Step 1 : Tạo controller CookieController bằng lệnh command bên dưới.

php artisan make:controller CookieController

Step 2 : Thêm code như bên dưới vào file app/Http/Controllers/CookieController.php.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Http\Response;

class CookieController extends Controller
{
    public function setCookie(Request $request){
        $minutes = 1;
        $response = new Response('Hello World');
        $response->withCookie(cookie('name', 'virat', $minutes));
        return $response;
    }
        public function getCookie(Request $request){
        $value = $request->cookie('name');
        echo $value;
    }
}

Step 3 : Thêm code sau vào file routes/app.php.

Route::get('/cookie/set','CookieController@setCookie');
Route::get('/cookie/get','CookieController@getCookie');

Step 4 : Vào link http://localhost:8000/cookie/set để set cookie.

Kết quả như hình bên dưới. Bạn kiểm tra cookie lưu trong trình duyệt sẽ thấy cooke đã được tạo.

Step 5 : Vào link http://localhost:8000/cookie/get để xem giá trị cookie đã tạo.