2016-11-28 2 views
0

Ich versuche, ein Cookie aus einer Middleware in Laravel 5.3 zu erhalten, aber es scheint, dass $ Anfrage-> Cookie ('Sprache') leer ist. Ich schätze, dass es erst eingestellt wird, wenn die Middleware läuft.Holen Sie sich einen Cookie in Laravel 5 Middleware

Ich habe irgendwo gelesen, dass ich \ Cookie :: queued ('Sprache') verwenden soll, aber es ist immer noch leer.

Ist meine einzige Option die Variable $ _COOKIE?

Antwort

3

Wann setzen Sie diesen Cookie?

Denken Sie daran, dass Cookies im Browser gespeichert werden, sodass der Benutzer die Antwort erhalten muss, damit Sie das Cookie später abrufen können.

Sie sollten den Cookie nach dem Setzen des Cookies durch eine Antwort erhalten können, die erfolgreich an den Benutzer gesendet wurde. Denken Sie auch daran, dass bei Verwendung von dd() der Cookie nicht erstellt werden kann, da alle Cookie-Header nicht an den Benutzer gesendet werden.

Ein weiteres Problem, das beim Versuch auftreten kann, Cookies von Middleware zu erhalten, besteht darin, dass es möglicherweise nicht automatisch entschlüsselt wird. Sie müssen es also selbst tun.

Beispiel:

\Crypt::decrypt(Cookie::get('language')) 
+0

+1 in Middleware, die nicht automatische Entschlüsselung erwähnt hat, Problem, das ich Ihre Lösung ausgewertete mit – Brigo

Verwandte Themen