2016-11-28 71 views
0

我试图从Laravel 5.3中的中间件检索一个cookie,但它看起来像$ request-> cookie('language')是空的。我猜测它只是在中间件运行后才设置的。在Laravel 5中间件中获取cookie

我在某处阅读我应该使用\ Cookie :: queued('language'),但它仍然是空的。

是我唯一的选择使用$ _COOKIE变量?

回答

3

你什么时候设置这个cookie?

请记住,Cookie存储在浏览器中,因此用户需要获得响应才能稍后检索cookie。

您应该能够在Cookie成功发送给用户的响应设置后获取cookie。还请记住,如果您使用dd(),则不会让cookie被创建,因为它会跳过所有发送给用户的cookie标头。

尝试从中间件获取cookie可能会遇到的另一个问题是,它可能不会自动解密,因此您必须自己做。

实施例:

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

1为被提到在中间件非自动解密,问题我解决使用溶液 – Brigo