我正在尝试获取cookie的价值。
$request->cookie('CookieName');
Laravel返回cookie的名称而不是其值。
dd(cookie('CookieName'));
我明白了:
#name: "CookieName"
#value: null
#domain: null
#expire: 0
#path: "/"
#secure: false
#httpOnly: true
-raw: false
-sameSite: null
$_COOKIE['CookieName'];
我实际上得到了cookie的价值。
有没有办法让Lavavel返回cookie的值?
答案 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')无法看到它们或它们的价值。