Symfony2 Cookie尝试获取cookie时出现问题

时间:2014-11-11 14:43:59

标签: php symfony cookies request response

我在Symfony2中管理Cookie时遇到了困难。

我的所有数据都在一个控制器中被操作,该控制器用作另一个控制器的服务(我在此控制器外测试过,我也有同样的问题)。

我使用以下内容:

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Cookie;

要设置Cookie,我使用 Cookie()响应()

public function indexAction()
{

    $cookie     = new Cookie('mycookie', 'myvalue' );
    $response   = new Response();
    $response->headers->setCookie( $cookie );
    $response->send();

    return $this->render('MyBundle:Default:default.html.twig', array());

}

一切都很好,我可以查看Cookie转储 $ _ COOKIE var,我可以使用各种浏览器插件查看它。但问题是我无法阅读/获取它。

我尝试了两种方法,但都没有成功。

public function readAction()
{

    // Method 1
    $request = new Request;
    $cookies = $request->cookies;
    var_dump( $cookies->get('mycookie') );

    // Method 2
    $response = new Response();
    $cookies = $response->headers->getCookies();
    var_dump($cookies);

    // Return My Response

}

任何想法我在这里做错了什么? 要注意我刚刚开始使用Symfony2。

2 个答案:

答案 0 :(得分:0)

您正在创建新的Request& Response对象而不是使用预先初始化的对象。试试这种方式,

public function readAction(Request $request) // <-- Notice the change
{

    // Method 1
    $cookies = $request->cookies;
    var_dump( $cookies->get('mycookie') );

    // Method 2
    $response = $this->getResponse();         // <-- Notice the change
    $cookies = $response->headers->getCookies();
    var_dump($cookies);

    // Return My Response

}

答案 1 :(得分:0)

谢谢Apul Gupta。从你的回答我得到这样的东西:

public function readAction(Request $request)
{
    $mycookie = $request->cookies->get('mycookie');
    var_dump( $mycookie  );
}

从控制器,我请求readAction

$generic = $this->get('generic');
$generic->readAction( $this->getRequest() ); // added this code here because the controller as service don't get the "getRequest()" method

谢谢