Учебники

Laravel — Cookie

Файлы cookie играют важную роль при создании сеанса пользователя в веб-приложении. В этой главе вы узнаете о работе с файлами cookie в веб-приложениях на основе Laravel.

Создание Cookie

Cookie может быть создан глобальным помощником cookie Laravel. Это экземпляр Symfony \ Component \ HttpFoundation \ Cookie . Куки можно прикрепить к ответу с помощью метода withCookie (). Создайте экземпляр ответа класса Illuminate \ Http \ Response для вызова метода withCookie (). Cookie, сгенерированные Laravel, зашифрованы и подписаны и не могут быть изменены или прочитаны клиентом.

Вот пример кода с объяснением.

//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;

Метод Cookie () будет принимать 3 аргумента. Первый аргумент — это имя куки, второй аргумент — это значение куки, а третий аргумент — это длительность куки, после которой куки будут автоматически удалены.

Cookie можно установить навсегда, используя метод forever, как показано в приведенном ниже коде.

$response->withCookie(cookie()->forever('name', 'value'));

Получение Cookie

После того, как мы установили cookie, мы можем извлечь cookie методом cookie (). Этот метод cookie () будет принимать только один аргумент, который будет именем куки. Метод cookie может быть вызван с использованием экземпляра Illuminate \ Http \ Request .

Вот пример кода.

//’name’ is the name of the cookie to retrieve the value of
$value = $request->cookie('name');

пример

Посмотрите на следующий пример, чтобы понять больше о Cookies —

Шаг 1 — Выполните приведенную ниже команду, чтобы создать контроллер, в котором мы будем манипулировать cookie.

php artisan make:controller CookieController --plain

Шаг 2 — После успешного выполнения вы получите следующий вывод —

CookieController

Шаг 3 — Скопируйте следующий код в

Файл app / Http / Controllers / CookieController.php .

приложение / Http / Контроллеры / 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;
   }
}

Шаг 4 — Добавьте следующую строку в файл app / Http / rout.php .

приложение / Http / routes.php

Route::get('/cookie/set','CookieController@setCookie');
Route::get('/cookie/get','CookieController@getCookie');

Шаг 5 — Посетите следующий URL, чтобы установить cookie.

http://localhost:8000/cookie/set

Шаг 6 — Вывод будет выглядеть, как показано ниже. Окно, отображаемое на скриншоте, взято из firefox, но в зависимости от вашего браузера cookie также можно проверить с помощью параметра cookie.

Привет, мир

Шаг 7. Перейдите по следующему URL-адресу, чтобы получить файл cookie с указанного выше URL-адреса.

http://localhost:8000/cookie/get

Шаг 8 — Вывод будет выглядеть, как показано на следующем рисунке.