我正在努力解决这个问题,我需要将数据存储在浏览器的缓存中。我正在使用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
答案 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);