如何在不中断其他内容和重定向的情况下在侦听器中设置cookie?
我试图在InteractiveLoginEvent上设置它。我试着这样设置:
$response = new Response();
$response->headers->setCookie(new Cookie('foo', 'bar'));
$response->send();
Cookie是以这种方式设置的,但之后我得到了空白页,并且在登录后它没有重定向到登录页面。我该如何解决这个问题?
答案 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无法实现的。