Laravel - Cookie
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. Nó là một ví dụ củaSymfony\Component\HttpFoundation\Cookie. Cookie có thể được đính kèm vào phản hồi bằng phương thức withCookie (). Tạo một phiên bản phản hồi củaIlluminate\Http\Responselớp để gọi phương thức withCookie (). Cookie do Laravel tạo ra được mã hóa và ký tên và nó không thể được sửa đổi hoặc đọc bởi ứng dụng khách.
Đây là một mã mẫu có 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 vĩnh viễn bằng cách sử dụng phương pháp vĩnh viễn như được hiển thị trong đoạn mã dưới đây.
$response->withCookie(cookie()->forever('name', 'value'));
Truy xuất Cookie
Khi chúng tôi đặt cookie, chúng tôi 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. Phương thức cookie có thể được gọi bằng cách sử dụng phiên bản củaIlluminate\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ề Cookie -
Step 1 - Thực hiện lệnh dưới đây để tạo một bộ điều khiển trong đó chúng ta sẽ thao tác với cookie.
php artisan make:controller CookieController --plain
Step 2 - Sau khi thực hiện thành công, bạn sẽ nhận được kết quả sau:
Step 3 - Sao chép mã sau vào
app/Http/Controllers/CookieController.php tập tin.
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;
}
}
Step 4 - Thêm dòng sau vào app/Http/routes.php file.
app/Http/routes.php
Route::get('/cookie/set','CookieController@setCookie');
Route::get('/cookie/get','CookieController@getCookie');
Step 5 - Truy cập URL sau để đặt cookie.
http://localhost:8000/cookie/set
Step 6- Đầu ra sẽ hiện ra 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.
Step 7 - Truy cập URL sau để lấy cookie từ URL trên.
http://localhost:8000/cookie/get
Step 8 - Đầu ra sẽ xuất hiện như trong hình sau.