Symfony在监听器中设置cookie

时间:2015-06-17 11:34:00

标签: symfony cookies listener

如何在不中断其他内容和重定向的情况下在侦听器中设置cookie?

我试图在InteractiveLoginEvent上设置它。我试着这样设置:

$response = new Response();
$response->headers->setCookie(new Cookie('foo', 'bar'));
$response->send();

Cookie是以这种方式设置的,但之后我得到了空白页,并且在登录后它没有重定向到登录页面。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

尝试使用RedirectResponse

$response = new RedirectResponse('url_to_redirect_to');
$response->headers->setCookie(new Cookie('foo', 'bar'));
$response->send();

它将设置一个cookie并重定向到您指定的URL。另外,请考虑将Router注入您的侦听器以生成正确的URL。

答案 1 :(得分:1)

如果您只使用PHP的方法setcookie()而不是生成重定向怎么办?

如果您有重定向页面可能会触发无限重定向错误(取决于您的操作),所以如果您只是使用此方法,那么您就可以了,并且您的cookie将被正确设置。

答案 2 :(得分:1)

当我需要处理POST变量时,我使用setcookie(),这似乎是RedirectResponse无法实现的。