为什么我的cookie不能在Laravel中保留(使用Homestead,Vagrant)?

问题描述 投票:1回答:1

我一直在Windows 10的命令提示符中使用Laravel,但是在项目之间切换的困难使我转而使用Homestead。但是,在我从那里开始的一个新项目中,我无法终生获得cookie。这是我当前的代码(仅用于调试此问题):

use Illuminate\Support\Facades\Cookie;

// ......

public function __construct(Request $request) {
    $customer_id = Cookie::get('customer_id');
    if(!$customer_id) {
        Cookie::queue('customer_id', time(), 3600);
    }
    dd($customer_id);
}

预期输出:在连续的页面加载中,访问者将看到与最初打开页面时相同的unix时间戳(我知道这不是处理它的好方法,同样,这只是为了重现错误。)

现实:每个页面加载都会产生不同的时间戳。

我已经找到了尽可能多的讨论。我尝试过的解决方案:

  • 使用声明cookie的Route方法
  • 使用老式PHP setcookie
  • 使用Cookie:制造商和Cookie:永远
  • 在EncryptCookies中的例外中添加'customer_id'
  • 在网络中间件中放置路由
  • 清除php artisan缓存,重新启动无业游民者
  • 使会话文件夹可通过chmod编辑

然而,在应用了上述所有方法之后,每次加载页面后cookie仍然消失了。

由于我以前没有通过Xampp的PHP这样的问题,所以我不得不假设Vagrant存在(希望)一个琐碎而明显的问题,我还不知道。任何建议表示赞赏!

php laravel cookies vagrant homestead
1个回答
2
投票

排队的cookie仅与响应一起发送,因此请确保您的控制器函数确实返回一个。

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