2011-12-08 6 views
16

コントローラのアクションでいくつかのクッキーを設定してから、別のアクションでクッキーセットを読み込み、その値で何かしたい。 Cookieを読み取るしようとしたときしかし、私が見るすべては空の配列は次のように私のコードは、次のとおりです。Symfony2:クッキーを読む

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

あなたがいない作成したばかりのボイドResponseオブジェクトに、Requestオブジェクトにクッキーを読み取る必要があります;)

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

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