Symfony2 Cookie Проблемы при попытке получить cookie

У меня проблемы с управлением Cookies в Symfony2.

Все мои данные обрабатываются в контроллере, используемом в качестве службы для другого контроллера (я проверил за пределами этого контроллера, и у меня та же проблема).

Я использую следующие:

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\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 Вар и я могу видеть это с помощью различных плагинов браузера. Но проблема в том, что я не могу прочитать / получить это.

Я попробовал 2 метода, ни один из них не был успешным.

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.

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

}
0

Другие решения

Спасибо Апул Гупта. Из вашего ответа я получил что-то вроде этого:

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

Спасибо

0

По вопросам рекламы [email protected]