我知道有一些关于此的话题,但我明白了我做错了什么。
我设置cookie的功能是
public function createCookie($city)
{
$expire = time() + (3600 * 24 * 90);
$cookie = new Cookie('calendar_dev_city', $city, $expire, '/', 'cal.dev', false, false);
$response = new Response();
$response->headers->setCookie($cookie);
$response->sendHeaders();
}
如果我在此函数末尾转储标题,我可以看到cookie已设置但重定向后它已消失。
答案 0 :(得分:0)
您必须在控制器操作中返回Response
。
<?php
// ...
public function pageAction() {
$response = Response::create();
$cookie = $this->makeCookie();
$response->headers->setCookie($cookie);
$response->setContent('thank you for setting the cookie!');
return $response;
}
private function makeCookie() {
$cookie = new Cookie(/* */);
return $cookie;
}