Laravel 5.4 Cookie值

时间:2017-05-21 13:54:18

标签: php laravel cookies laravel-5

我正在尝试获取cookie的价值。

1当我使用Laravel的请求cookie帮助程序时:

$request->cookie('CookieName');

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

2当我dd()时,cookie()函数:

dd(cookie('CookieName'));

我明白了:

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

3当我在$ _COOKIE函数中使用PHP的构建时:

$_COOKIE['CookieName'];

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

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

2 个答案:

答案 0 :(得分:3)

获取cookie值的正确方法是使用

dd(cookie('CookieName'));

但是APP_KEY辅助方法创建了一个新cookie,而不是获取值。因此,当您执行{{1}}时,它会创建一个具有该名称但没有值的cookie并将其返回。

Laravel在没有任何用户干预的情况下即时加密和解密cookie值。检查您如何重新设置烹饪,并确保已设置将用于加密的{{1}}。更改此密钥将使所有旧cookie无效。

答案 1 :(得分:2)

实际上

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

应该提供一个值,您可以在doc中阅读。

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