2011-12-08 70 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')); 
    } 
}