Cookie đóng một vai trò quan trọng trong khi xử lý phiên của người dùng trên ứng dụng web. Trong chương này, bạn sẽ tìm hiểu về cách làm việc với cookie trong các ứng dụng web dựa trên Laravel.
Tạo Cookie
Cookie có thể được tạo bởi trình trợ giúp cookie toàn cầu của Laravel. Cookie có thể được đính kèm vào phản hồi bằng phương thức withCookie(). Tạo một thể hiện phản hồi của lớp Illuminate\Http\Response để gọi phương thức withCookie(). Cookie do Laravel tạo ra được mã hóa và ký tên và khách hàng không thể sửa đổi hoặc đọc nó.
Đây là một mã mẫu với lời giải thích.
//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;
Phương thức Cookie() sẽ nhận 3 đối số. Đối số đầu tiên là tên của cookie, đối số thứ hai là giá trị của cookie và đối số thứ ba là thời lượng của cookie mà sau đó cookie sẽ tự động bị xóa.
Cookie có thể được đặt mãi mãi bằng cách sử dụng phương pháp mãi mãi như trong đoạn mã dưới đây.
$response->withCookie(cookie()->forever('name', 'value'));
Truy xuất Cookie
Sau khi đặt cookie, chúng ta có thể truy xuất cookie bằng phương thức cookie(). Phương thức cookie() này sẽ chỉ nhận một đối số là tên của cookie. Có thể gọi phương thức cookie bằng cách sử dụng ví dụ Illuminate\Http\Request .
Đây là một mã mẫu.
//’name’ is the name of the cookie to retrieve the value of $value = $request->cookie('name');
Thí dụ
Quan sát ví dụ sau để hiểu thêm về Cookies −
Bước 1 – Thực hiện lệnh bên dưới để tạo bộ điều khiển trong đó chúng ta sẽ thao tác với cookie.
php artisan make:controller CookieController --plain
Bước 2 – Sau khi thực hiện thành công, bạn sẽ nhận được đầu ra sau –
Bước 3 – Sao chép đoạn mã sau vào
tệp app/Http/Controllers/CookieController.php .
app/Http/Controllers/CookieController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; use App\Http\Requests; use App\Http\Controllers\Controller; 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; } }
Bước 4 – Thêm dòng sau vào tệp app/Http/routes.php .
app/Http/routes.php
Route::get('/cookie/set','CookieController@setCookie'); Route::get('/cookie/get','CookieController@getCookie');
Bước 5 – Truy cập URL sau để đặt cookie.
http://localhost:8000/cookie/set
Bước 6 – Đầu ra sẽ xuất hiện như hình bên dưới. Cửa sổ xuất hiện trong ảnh chụp màn hình được lấy từ firefox nhưng tùy thuộc vào trình duyệt của bạn, cookie cũng có thể được kiểm tra từ tùy chọn cookie.
Bước 7 – Truy cập URL sau để lấy cookie từ URL trên.
http://localhost:8000/cookie/get
Bước 8 – Đầu ra sẽ xuất hiện như trong hình dưới đây.