在 Laravel 5 中间件中获取 cookie

Raz*_*man 2 cookies session-cookies laravel laravel-5

我正在尝试从 Laravel 5.3 中的中间件检索 cookie,但 $request->cookie('language') 似乎是空的。我猜它只是在中间件运行后设置的。

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

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

Ric*_*ing 5

你什么时候设置这个cookie?

请记住,cookie 存储在浏览器中,因此用户需要获取响应,以便您稍后能够检索 cookie。

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

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

例子:

\Crypt::decrypt(Cookie::get('language'))
Run Code Online (Sandbox Code Playgroud)