Laravel - Cookie

I cookie svolgono un ruolo importante durante la gestione della sessione di un utente su un'applicazione web. In questo capitolo imparerai a lavorare con i cookie nelle applicazioni web basate su Laravel.

Creazione di un cookie

Il cookie può essere creato dall'helper cookie globale di Laravel. È un'istanza diSymfony\Component\HttpFoundation\Cookie. Il cookie può essere allegato alla risposta utilizzando il metodo withCookie (). Crea un'istanza di risposta diIlluminate\Http\Responseclass per chiamare il metodo withCookie (). I cookie generati dal Laravel sono crittografati e firmati e non possono essere modificati o letti dal client.

Ecco un codice di esempio con spiegazione.

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

Il metodo Cookie () richiede 3 argomenti. Il primo argomento è il nome del cookie, il secondo argomento è il valore del cookie e il terzo argomento è la durata del cookie dopo la quale il cookie verrà eliminato automaticamente.

Il cookie può essere impostato per sempre utilizzando il metodo per sempre come mostrato nel codice seguente.

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

Recupero di un cookie

Una volta impostato il cookie, possiamo recuperare il cookie con il metodo cookie (). Questo metodo cookie () richiederà un solo argomento che sarà il nome del cookie. Il metodo cookie può essere chiamato utilizzando l'istanza diIlluminate\Http\Request.

Ecco un codice di esempio.

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

Esempio

Osservare il seguente esempio per capire di più sui cookie:

Step 1 - Esegui il comando seguente per creare un controller in cui manipoleremo il cookie.

php artisan make:controller CookieController --plain

Step 2 - Dopo aver eseguito con successo, riceverai il seguente output -

Step 3 - Copia il seguente codice in formato

app/Http/Controllers/CookieController.php file.

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 - Aggiungi la seguente riga app/Http/routes.php file.

app/Http/routes.php

Route::get('/cookie/set','[email protected]');
Route::get('/cookie/get','[email protected]');

Step 5 - Visita il seguente URL per impostare il cookie.

http://localhost:8000/cookie/set

Step 6- L'output apparirà come mostrato di seguito. La finestra che appare nello screenshot è presa da Firefox ma a seconda del browser, i cookie possono essere controllati anche dall'opzione cookie.

Step 7 - Visita il seguente URL per ottenere il cookie dall'URL sopra.

http://localhost:8000/cookie/get

Step 8 - L'output apparirà come mostrato nell'immagine seguente.