我正在尝试从 Laravel 5.3 中的中间件检索 cookie,但 $request->cookie('language') 似乎是空的。我猜它只是在中间件运行后设置的。
我在某处读到我应该使用\Cookie::queued('language'),但它仍然是空的。
我唯一的选择是使用 $_COOKIE 变量吗?
最佳答案
你什么时候设置这个cookie?
请记住,cookie 存储在浏览器中,因此用户需要获得响应,以便您稍后能够检索 cookie。
在通过成功发送给用户的响应设置 cookie 之后,您应该能够获取 cookie。还请记住,如果您使用 dd(),则不会创建 cookie,因为它会跳过所有发送给用户的 cookie header 。
您在尝试从中间件获取 cookie 时可能面临的另一个问题是它可能不会自动解密,因此您必须自己完成。
例子:
\Crypt::decrypt(Cookie::get('language'))
关于laravel - 在 Laravel 5 中间件中获取 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846244/