laravel - 在 Laravel 5 中间件中获取 cookie

标签 laravel cookies laravel-5 session-cookies

我正在尝试从 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/

相关文章:

php - Faker 和 Laravel 5

php - 用 laravel 和 eloquent 处理 TimeZone

php - 更改 PHP 文件数组

php - Laravel 中使用 Modal 动态更新数据

javascript - 如何使用javascript调用路由并发送数据

php - 拉维尔 : How to take last n(any number) rows after ordered in ascending order?

node.js - express cookie 返回 undefined

javascript - (仅限 Safari)Axios 请求不会将 cookie 发送到 Node.js/Express REST API

php - Laravel Eloquent 多表

cookies - jMeter Cookie 管理器不存储所有 cookie