2011-12-08 71 views
16

我已经在Controller动作中设置了一些cookie,然后在另一个动作中我想读取cookie集合并对值做些事情。然而,尝试读取cookie时,我看到的是一个空数组,我的代码如下:Symfony2:读取Cookie

public function testSetCookieAction() 
{ 
    $value = 'ABCDEFGHI' 

    $cookie = new Cookie('SYMFONY2_TEST', $value, (time() + 3600 * 24 * 7), '/'); 
    $response = new Response(); 
    $response->headers->setCookie($cookie); 
    $response->send(); 
. 
. 
. 
} 

public function testReadCookieAction() 
{ 
    $response = new Response(); 
$cookies = $response->headers->getCookies(); 

// $cookies = array(0) { } 
} 

当我var_dump($_COOKIE);,我看到array(1) { ["SYMFONY2_TEST"]=> string(9) "ABCDEFGHI" }有谁知道我做错了什么?

在此先感谢

回答

44

必须在Request对象的读取cookies,而不是你刚刚创建的空白响应对象;)

public function testReadCookieAction(Request $request) 
{ 
    $cookies = $request->cookies; 

    if ($cookies->has('SYMFONY2_TEST')) 
    { 
     var_dump($cookies->get('SYMFONY2_TEST')); 
    } 
}