От автора: файл Cookie можно создать с помощью глобального хелпера Laravel cookie. Это экземпляр объекта Symfony\Component\HttpFoundation\Cookie. Файл cookie можно присоединить к ответу с помощью метода withCookie(). Создайте экземпляр ответа класса Illuminate\Http\Response, чтобы вызвать метод withCookie(). Файл Cookie, созданный Laravel, шифруется и подписывается, он не может быть изменен или прочитан клиентом.
Ниже приводится пример кода с пояснениями.
1 2 3 4 5 6 7 8 |
//Создаем экземпляр ответа $response = new Illuminate\Http\Response('Hello World'); //Вызываем метод withCookie() с методом ответа $response->withCookie(cookie('name', 'value', $minutes)); //возвращаем ответ return $response; |
Метод Cookie() принимает 3 аргумента. Первый аргумент — это имя файла cookie, второй аргумент — это значение cookie, третий аргумент – срок действия файла cookie, после которого он автоматически удаляется. Cookie можно установить навсегда, с помощью метода forever, как показано в приведенном ниже коде.
1 |
$response->withCookie(cookie()->forever('name', 'value')); |
Извлечение cookie
После того как мы установили файл cookie, мы можем извлечь его с помощью методом cookie(). Этот метод принимает только один аргумент — имя файла cookie. Метод cookie можно вызвать, с помощью экземпляра Illuminate\Http\Request. Ниже приведен пример кода.
1 2 |
//'name' - это имя файла cookie, из которого мы извлекаем значение $value = $request->cookie('name'); |
Шаг 1 — Выполните следующую команду, чтобы создать контроллер, в котором мы будем работать с файлом cookie.
1 |
php artisan make:controller CookieController --plain |
Шаг 2 — После выполнения этой команды вы получите следующий результат:
Шаг 3 — Скопируйте следующий код в файл app/Http/Controllers/CookieController.php.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?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; } } |
Шаг 4 — Добавьте в файл app/Http/routes.php следующую строку.
1 2 |
Route::get('/cookie/set','CookieController@setCookie'); Route::get('/cookie/get','CookieController@getCookie'); |
Шаг 5. Перейдите по следующему URL-адресу, чтобы установить файл cookie. //localhost:8000/cookie/set
Шаг 6 – В результате вы должны получить следующее. На скриншоте показано отображение результата в браузере firefox, но в зависимости от вашего браузера, файл cookie можно проверить с помощью параметра cookie.
Шаг 7 – Перейдите по следующему URL-адресу, чтобы получить файл cookie из вышеуказанного URL-адреса. //localhost:8000/cookie/get
Шаг 8 – В результате вы должны получить следующее.
Источник: //www.tutorialspoint.com/
Редакция: Команда webformyself.