web-dev-qa-db-fra.com

Cookie :: oubliez pas de travailler laravel 5.1

J'essaie d'obtenir que Laravel 5.1 supprime mon cookie, mais il ne sera pas supprimé même si je le renvoie avec ma redirection.

return redirect('/voucher')->withCookie(Cookie::forget($cookie));

Ai-je fait quelque chose de mal?

9
V4n1ll4

Je me trompe peut-être, mais vous utilisez probablement un objet cookie à la place du nom du cookie lorsque vous appelez Cookie::forget($cookie). Sauf si $cookie est une chaîne contenant le nom du cookie, vous devriez essayer quelque chose comme ceci:

return redirect('/voucher')->withCookie(Cookie::forget('cookie_name'));
17
Jan.J

Je sais que la question est déjà ancienne et qu’elle a déjà répondu, mais je suis arrivé récemment et, si je ne me trompe pas, le cookie doit être mis en attente pour la réponse suivante.

Vous pouvez le faire en ajoutant manuellement le cookie à la réponse sous la forme @ Jan.J déjà décrite dans sa réponse. Mais si vous avez besoin de le faire en ligne, cela pourrait également fonctionner pour vous:

Cookie::queue(
    Cookie::forget('cookieName')
);

La CookieJar transmettra tous les cookies en file d'attente à la prochaine réponse.

12
Robin van Baalen

Dans mon cas, il y avait une array stockée dans le cookie, donc aucune des méthodes fournies n'a fonctionné. Le tableau devrait être supprimé en fournissant exactement la paire de tableau:

Cookie::queue(Cookie::forget('array_name[provide_key]'));
3
Gediminas

Vous pouvez aussi le faire de cette façon: 

redirect('/')->cookie(cookie()->forget('my_super_cookie_name))
0
Bond77

fonction publique funname (CookieJar $ cookie)

    session()->flush();

$ cookie-> queue (cookie () -> oublier ('user_email')); $ cookie-> queue (cookie () -> oublier ('user_password'));

return redirect('/');
0
Davinder Singh