Функция cookie
Функция cookie в Laravel служит для работы с HTTP-куками.
Она может использоваться как для получения значения куки,
так и для создания нового экземпляра куки, который затем
можно прикрепить к ответу. При получении первым параметром
передаётся имя куки, вторым - значение по умолчанию, если
кука не найдена. При установке первым параметром передаётся
имя, вторым - значение, третьим - время жизни в минутах.
Синтаксис
<?php
// Получение значения куки
$value = cookie($name, $default);
// Создание новой куки
$cookie = cookie($name, $value, $minutes);
?>
Пример
Давайте получим значение куки 'user_id' и выведем его:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
Route::get('/get-cookie', function (Request $request) {
$userId = cookie('user_id', 'Guest');
echo $userId;
});
?>
Результат выполнения кода:
"12345"
Пример
Давайте установим куку 'theme' со значением 'dark'
на 60 минут и прикрепим её к ответу:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
Route::get('/set-cookie', function (Request $request) {
$cookie = cookie('theme', 'dark', 60);
return response('Theme set')->cookie($cookie);
});
?>
Результат выполнения кода:
"Theme set"
Пример
Давайте создадим куку с дополнительными параметрами: путь, домен, защищённый флаг и флаг HttpOnly:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
Route::get('/secure-cookie', function (Request $request) {
$cookie = cookie(
'session_token', // name
'abc123', // value
120, // minutes
'/admin', // path
'.example.com', // domain
true, // secure (HTTPS only)
true // httponly
);
return response('Secure cookie set')->cookie($cookie);
});
?>
Результат выполнения кода:
"Secure cookie set"
Пример
Давайте удалим куку, установив её срок действия в прошлое:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
Route::get('/delete-cookie', function (Request $request) {
$cookie = cookie('user_id', null, -1);
return response('Cookie deleted')->cookie($cookie);
});
?>
Результат выполнения кода:
"Cookie deleted"