Laravel 5.4 Cookie值

问题描述 投票:5回答:2

我想获得一个cookie的价值。

1 When I use Laravel's request cookie helper:

$request->cookie('CookieName');

Laravel返回cookie的名称而不是其值。

2 When I dd() the the cookie() function:

dd(cookie('CookieName'));

我明白了:

#name: "CookieName"
#value: null
#domain: null
#expire: 0
#path: "/"
#secure: false
#httpOnly: true
-raw: false
-sameSite: null

3 When I use PHP's build in $_COOKIE function:

$_COOKIE['CookieName'];

我实际上得到了cookie的价值。


有没有办法让Lavavel返回cookie的值?

php laravel cookies laravel-5
2个回答
3
投票

正如您所使用的那样,获取cookie值的正确方法

$request->cookie('name');

但是cookie辅助方法创建了一个新的cookie,而不是取值。所以,当你做dd(cookie('CookieName'));时,它创建一个具有该名称且没有价值的cookie并返回它。

Laravel无需任何用户干预即可在运行时加密和解密cookie值。检查您如何重新设置烹饪,并确保已设置将用于加密的APP_KEY。更改此密钥将使所有旧cookie无效。


2
投票

其实

$value = $request->cookie('name');

应该给你一个值,你可以在doc阅读。

我怀疑你的cookie是从一些外部代码(而不是laravel代码)设置的,例如它是由jQuery插件或其他东西创建的。在这种情况下,您必须将cookie添加到EncryptCookies中间件$除表之外。因为Laravel框架创建的所有cookie都经过加密并使用身份验证代码进行签名。例如来自jQuery插件的所有其他cookie未经Laravel加密和签名,因此$ request-> cookie('name')无法看到它们或它们的值。

© www.soinside.com 2019 - 2024. All rights reserved.