在Controller中设置Cookie变量 - Symfony2

时间:2013-04-14 06:16:50

标签: symfony cookies

我正在尝试在渲染twig文件之前在Controller中设置cookie。在尝试了我在这里看到的一些建议之后,我的代码如下所示:

public function demandAction() {

    $result = array('message' => '');
    $response = $this->render('MainBundle:Default:demand.html.twig', $result);        
    $response->headers->setCookie(new Cookie('cookie', 'value', time() + 3600 * 24 * 7));

    return $response;
}

但是当我提醒document.cookie时,我的呈现页面中没有cookie。我敢肯定我一定错过了什么。请帮帮我。感谢。

1 个答案:

答案 0 :(得分:2)

默认情况下,Cookie对象的httpOnly设置为true http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/Cookie.html

这意味着浏览器不应使cookie对客户端脚本可见。如果您需要在脚本中查看cookie,则可以在创建cookie时将第7个参数作为false传递。

$response->headers->setCookie(new Cookie('foo', 'bar',time() + 60, '/', null, false, false));

如果您只是需要查看Cookie以进行调试,则可以使用Chrome开发工具。它们位于“资源”选项卡下。