【问题标题】:Difference between using Laravel Cookie and plain php $_COOKIE?使用 Laravel Cookie 和普通 php $_COOKIE 的区别?
【发布时间】:2021-03-30 02:42:53
【问题描述】:

我使用 javascript 设置了一个 cookie,并尝试使用 laravel PHP 在后端读取。当我尝试运行其中任何一个时,我得到 null:

Cookie::get('locale');
$locale = $request->cookie('locale');

现在,当我运行普通的旧 php 版本时,我可以正常获取 cookie。

$_COOKIE['locale'];

有什么区别?为什么我在使用 laravel 版本时会得到 null?

【问题讨论】:

  • 你是如何设置你的 cookie 是通过原生 php 代码吗?如果是,则必须通过 laravel 方法/代码进行设置
  • 我把它设置在前端,用 javascript
  • 啊。我明白这就是它在 laravel 中返​​回 null 的原因。也许你通过 ajax 在 laravel 代码中设置你的 cookie。能够通过 laravel Cookie 类读取它,因为 php 框架有自己的会话和 cookie 数组

标签: php laravel cookies


【解决方案1】:

Laravel cookie 是加密的,所以除非你这样做

return response('Hello World')->cookie(
    'locale', 'pt-BR'
);

你无法阅读它使用

Cookie::get('locale');

【讨论】:

    【解决方案2】:

    这是因为 laravel cookie 加密。你可以不包括EncryptCookies 中间件来避免这个问题。从$middlewareGroups 中的app\Http\Kernel.php 中删除\App\Http\Middleware\EncryptCookies::class

    【讨论】:

    猜你喜欢
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 2012-05-17
    • 2023-03-22
    相关资源
    最近更新 更多