web-dev-qa-db-fra.com

Comment installer et obtenir un cookie dans laravel

Je souhaite définir et obtenir une valeur dans le cookie, mais cela ne fonctionne pas:

    Cookie::queue('online_payment_id', "1", 15);

    $value = Cookie::get('online_payment_id');
    dd($value);

dd() renvoie null;


J'ai utilisé ci-dessous mais j'ai eu ce message:

Method cookie does not exist.

    request()->cookie('online_payment_id');

    $value = response()->cookie('online_payment_id', "1", 15);
    dd($value);
5
S.M_Emamian

Set Cookies  

 public function setCookie(Request $request){
      $minutes = 60;
      $response = new Response('Set Cookie');
      $response->withCookie(cookie('name', 'MyValue', $minutes));
      return $response;
   }

Obtenir un cookie

   public function getCookie(Request $request){
      $value = $request->cookie('name');
      echo $value;
   }
4
Hariharan

Ajoutez en haut du fichier, ajoutez use Symfony\Component\HttpFoundation\Cookie; ou simplement use Cookie;

Pour générer des instances de cookies

    $cookie = cookie('name', 'value', $minutes);
    return response('Hello World')->cookie($cookie);

Récupération des cookies à partir de demandes que vous pouvez utiliser Demandez à être sûr que vous utilisez Request $request dans votre méthode. 

    $value = $request->cookie('name');
5
Prashant Barve

Même si vous suivez attentivement la documentation de Laravel concernant la configuration des cookies, vous risquez de devenir fou pendant des heures (comme je le faisais aujourd'hui), car vous ne pouvez tout simplement pas configurer vos cookies! 

J'ai finalement découvert pourquoi mes cookies n'étaient pas configurés ... J'utilisais également la fonction dump() pour afficher des données pendant le test du code. La fonction dump() envoie une sortie au navigateur, ce qui nécessite l'envoi d'en-têtes. Les cookies doivent également être envoyés avec les en-têtes, donc si vous utilisez dump(), vos cookies ne seront jamais envoyés! 

J'espère que cela aidera les autres qui vont très probablement se retrouver dans cette situation.

2
Erin Geyer

Comme tout le reste dans laravel, il existe de nombreuses manières de définir/obtenir des cookies. Le cookie sera automatiquement ajouté à la réponse sortante.

    $value = 1;
    $minutes = 15;
    Cookie::queue($online_payment_id, $value, $minutes);

Pour obtenir le cookie, vous pouvez utiliser le

    request()->cookie($online_payment_id);
2
gaurav

montrer tous les cookies

request()->cookie();

pour obtenir un article spécifique

request()->cookie('itm_name');

pour définir l'élément

request()->cookie('item_name', 'item_value', Min_how_long_it_will_alive);
0
sh6210

Essaye ça: 

public function setCookie(Request $request){

 $cookie_name = "user";
 $cookie_value = "value";
 setcookie($cookie_name,$cookie_value, time() + (86400 * 30), "/"); //name,value,time,url

 dd($_COOKIE['user']);

}
0
saroj

Il existe plusieurs méthodes pour configurer et obtenir des cookies dans laravel.

La documentation officielle dit Cookies

Je finis d'habitude comme ça

$response = new \Illuminate\Http\Response(view('welcome'));
$response->withCookie(cookie('test_cookie', $request->test_cookie, 45000));
return $response;

Vous pouvez également utiliser CookieJar

Référez-vous CookieJar

0
laktherock