Symfony将数据存储在缓存问题中

时间:2015-04-14 11:24:54

标签: php symfony

我正在努力解决这个问题,我需要将数据存储在浏览器的缓存中。我正在使用Symfony 2.6.1,我使用以下代码:

    if($request->cookies->get('myCookie')){
        /*  do stuff  */

    }else{
        $cookie = new Cookie('myCookie', $myData, 0, '/', null, false, false);            
        $response->headers->setCookie($cookie);           
        $response->setCache(array(
            'etag'          => 'abcdef',
            'last_modified' => new \DateTime(),
            'max_age'       => 600,
            's_maxage'      => 600,
            // 'private'       => false,
            'public'        => true,
        ));
        $response->send(); 

        /* send a response */
    }

我需要首先检查cookie“myCookie”是否存在,如果不存在则应该在浏览器中创建和存储。我的问题是,当我只是刷新页面到cookie时,如果我关闭浏览器,当我再次打开时,cookie就不存在了。

我认为当我设置cookie $ response-> setCache(array(...))

时,这是数组中的一些配置/适当性

在官方网站上,关于此的信息并不多。

http://symfony.com/doc/current/book/http_cache.html#types-of-caches

1 个答案:

答案 0 :(得分:2)

Cookie的消失实际上是有道理的。您正在使用以下行构建Cookie:

$cookie = new Cookie('myCookie', $myData, 0, '/', null, false, false); 

第三个参数(0)表示它是会话cookie - 一旦您关闭浏览器就会被丢弃。

尝试这样的事情:

// Cookie stays alive for an hour
$cookie = new Cookie('myCookie', $myData, time() + 3600, '/', null, false, false);