如何在symfony2中将cookie附加到JSON响应?

adi*_*tya 4 php cookies symfony

我有JSON端点,用于将产品添加到购物车.它会检查购物车是否已存在或没有.如果没有,则创建购物车,购物车ID存储在cookie中.所以我如何将cookie附加到symfony2的JsonResponse?

在非ajax版本中,如果我从我的动作渲染模板,我可以使用:

$response = new Response();
$response->headers->setCookie(new Cookie(‘cookie_name’, ‘cookie_value’));

$this->render('<template_path>', '<array_options>', $response);
Run Code Online (Sandbox Code Playgroud)

请帮我介绍如何为JsonResponse做这件事.

小智 6

在我看来,您将在以下链接中找到答案:

如何在symfony2控制器中发送json响应

http://api.symfony.com/2.2/Symfony/Component/HttpFoundation/JsonResponse.html

http://symfony.com/doc/current/components/http_foundation/introduction.html

最好的方法,看到链接和学习,但如果你找不到答案,也许这将是好的:

use Symfony\Component\HttpFoundation\Response;

$response = new Response();
$response->headers->set('Content-Type', 'application/json');
$response->headers->setCookie(new Cookie(‘cookie_name’, ‘cookie_value’));

return $response;
Run Code Online (Sandbox Code Playgroud)

还有一个有用的JsonResponse类,它可以使这更容易:

use Symfony\Component\HttpFoundation\JsonResponse;

$response = new JsonResponse();
$response->headers->setCookie(new Cookie(‘cookie_name’, ‘cookie_value’));

return $response;
Run Code Online (Sandbox Code Playgroud)

我希望,这将有所帮助:)