Cookie在控制器中读取正确,但在中间件中读取不正确-Laravel
我试图设置cookie来定义用户首选的语言。我通过一个指向助手控制器的链接做到了这一点: /设置区域设置/{locale} 我知道这是正确的,因为如果我这样做:Cookie在控制器中读取正确,但在中间件中读取不正确-Laravel,laravel,cookies,middleware,Laravel,Cookies,Middleware,我试图设置cookie来定义用户首选的语言。我通过一个指向助手控制器的链接做到了这一点: /设置区域设置/{locale} 我知道这是正确的,因为如果我这样做: dd(Cookie::get('locale')); 它显示所选的正确区域设置。所以下一步是使用中间件在任何地方实际应用所选的语言环境,我将其命名为“SetLocale”: 但如果我执行 dd(Cookie::get('locale')); 在中间件中,它读取所有加扰的cookie。 所以我的问题是,它为什么这样做?我如何从这里正确
dd(Cookie::get('locale'));
它显示所选的正确区域设置。所以下一步是使用中间件在任何地方实际应用所选的语言环境,我将其命名为“SetLocale”:
但如果我执行
dd(Cookie::get('locale'));
在中间件中,它读取所有加扰的cookie。
所以我的问题是,它为什么这样做?我如何从这里正确读取cookie?使用此命令从请求中获取cookie:
\Crypt::decrypt(Cookie::get('locale'))
或使用
\Crypt::decryptString(Cookie::get('locale'))
好的,esmaill的答案对我不起作用(得到了一个“unserialize():偏移量0处43字节的错误”错误),但它确实帮助我找到了解决问题的正确方向 我所做的只是将'locale'添加到EncryptCookies中间件的$except属性中,并重置cookie,现在它被正确读取
\Crypt::decrypt(Cookie::get('locale'))
\Crypt::decryptString(Cookie::get('locale'))