【问题标题】:Cannot get queued cookie from request无法从请求中获取排队的 cookie
【发布时间】:2016-07-19 13:40:58
【问题描述】:

所以我有一个在队列中发送 cookie 的 PHP 控制器,我需要在下次刷新页面时获取这个 cookie(并调用这个控制器)。

当控制器被调用时,它会检查 cookie 是否存在于请求中,如果不存在,它会将其设置在队列中,过期时间为 15 分钟。

但是当再次调用此控制器时,请求中没有任何内容。我查看了 dev-tools->Network->Cookies,但在请求和响应部分都没有找到这个 cookie。同时,getQueuedQookies() 表明这个cookie 已经被添加到队列中。代码如下:

$cookie = $this->request->cookie('id');
if($cookie=='id') {
    die('ID detected.');
} else {
    $this->cookieJar->queue('id', 'id', 15);
}

然后进行其他动作,控制器最后返回一些字符串。

我做错了什么,如何解决我的问题?非常感谢任何可能的帮助!

【问题讨论】:

    标签: php cookies request laravel-5.2 cookiejar


    【解决方案1】:

    更新

    将 test 更改为您的函数名称,CookieJar 将被自动注入。

    public function test(CookieJar $cookieJar, Request $request){
        $cookie= $request->cookie('id');
        if($cookie=='id') {
            print('ID detected.');
        } else {
            $cookieJar->queue(cookie('id', 'id', 15));
        }
    }
    

    【讨论】:

    • 我正在使用 $this,因为在我的控制器 __construct 函数中我有参数 (CookieJar $cookieJar) { $this->cookieJar = $cookieJar;} 如果我尝试你的代码,我会得到未定义属性的错误
    • 您添加了use Illuminate\Cookie\CookieJar; 吗?对于$request,它会自动注入到您的函数参数中,例如function sth(Request $request) 不属于控制器。
    • 是的,我用过 Illuminate\blahblah
    猜你喜欢
    • 2021-10-18
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2014-01-15
    • 2021-01-31
    相关资源
    最近更新 更多