РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
439 of 1392 menu

Класс Cookie

Класс Cookie в Laravel используется для работы с куками - небольшими фрагментами данных, которые сервер отправляет браузеру и которые браузер возвращает при последующих запросах. Основные методы класса позволяют создавать куки с заданными параметрами (имя, значение, срок действия, путь, домен, защищённость и доступность для JavaScript), помещать их в очередь на отправку с ответом, извлекать значения кук из запроса и удалять их. В большинстве случаев работа с куками происходит через фасады Cookie или глобальные функции-помощники.

Класс Cookie находится в пространстве имён Illuminate\Support\Facades и предоставляет следующие основные методы: make - создание нового экземпляра куки, queue - добавление куки в очередь на отправку, get - получение значения куки из запроса, has - проверка наличия куки, forever - создание куки с бесконечным сроком действия, forget - удаление куки (установка срока действия в прошлое) и expire - алиас для forget.

Синтаксис

<?php use Illuminate\Support\Facades\Cookie; // Создание куки Cookie::make($name, $value, $minutes, $path, $domain, $secure, $httpOnly); // Добавление куки в очередь Cookie::queue($name, $value, $minutes); // Получение значения куки Cookie::get($name, $default); // Проверка наличия куки Cookie::has($name); // Удаление куки Cookie::forget($name); ?>

Пример

Давайте создадим куку с именем 'user_id' и значением 123, сроком действия на 60 минут:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cookie; use Illuminate\Http\Request; class CookieController extends Controller { public function setCookie() { $cookie = Cookie::make('user_id', 123, 60); return response('Cookie has been set.')->cookie($cookie); } } ?>

В этом примере мы создаём куку с помощью метода make, а затем присоединяем её к ответу с помощью метода cookie объекта ответа.

Пример

Давайте добавим куку в очередь на отправку с помощью метода queue:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cookie; use Illuminate\Http\Request; class CookieController extends Controller { public function queueCookie() { Cookie::queue('theme', 'dark', 120); return response('Theme cookie has been queued.'); } } ?>

Куки, добавленные в очередь, автоматически присоединяются к ответу в промежуточном слое AddQueuedCookiesToResponse.

Пример

Давайте получим значение куки из запроса с помощью метода get:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cookie; use Illuminate\Http\Request; class CookieController extends Request { public function getCookie() { $userId = Cookie::get('user_id', 'default'); echo $userId; } } ?>

Результат выполнения кода:

"123"

Пример

Давайте проверим наличие куки с помощью метода has:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cookie; use Illuminate\Http\Request; class CookieController extends Controller { public function checkCookie() { if (Cookie::has('user_id')) { echo "Cookie exists"; } else { echo "Cookie does not exist"; } } } ?>

Результат выполнения кода:

"Cookie exists"

Пример

Давайте удалим куку с помощью метода forget:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Cookie; use Illuminate\Http\Request; class CookieController extends Controller { public function deleteCookie() { Cookie::queue(Cookie::forget('user_id')); return response('Cookie has been deleted.'); } } ?>

Метод forget создаёт куку с истекшим сроком действия, что заставляет браузер удалить её. Мы помещаем её в очередь для отправки с ответом.

Смотрите также

  • класс Request,
    который предоставляет методы для доступа к данным запроса, включая куки
  • метод queue,
    который добавляет куки в очередь на отправку
  • метод get,
    который извлекает значение куки из запроса
  • метод forever,
    который создаёт куку с бесконечным сроком действия
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить