2011-12-08 30 views
16

Tôi đã đặt một vài cookie trong một hành động Điều khiển và sau đó trong một hành động khác, tôi muốn đọc tập hợp cookie và làm điều gì đó với giá trị. Tuy nhiên, khi cố gắng đọc các tập tin cookie, tất cả tôi thấy là một mảng trống rỗng, mã của tôi là như sau:Symfony2: Đọc 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) { } 
} 

Khi tôi var_dump($_COOKIE);, tôi thấy array(1) { ["SYMFONY2_TEST"]=> string(9) "ABCDEFGHI" } Có ai biết những gì tôi đang làm sai?

Cảm ơn trước

Trả lời

44

Bạn phải đọc các tập tin cookie trên các đối tượng yêu cầu, không phải trên các đối tượng khoảng trống đáp ứng bạn vừa tạo;)

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

    if ($cookies->has('SYMFONY2_TEST')) 
    { 
     var_dump($cookies->get('SYMFONY2_TEST')); 
    } 
} 
Các vấn đề liên quan