【问题标题】:Symfony setting a cookie in a listenerSymfony 在监听器中设置 cookie
【发布时间】:2015-09-02 14:48:45
【问题描述】:

如何在侦听器中设置 cookie 而不会中断其他事情和重定向?

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

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

Cookie 是这样设置的,但之后我得到空白页面,并且在登录后它没有重定向到登录页面。我该如何解决?

【问题讨论】:

    标签: symfony cookies listener


    【解决方案1】:

    当我需要处理 POST 变量时,我使用 setcookie(),而 RedirectResponse 似乎无法做到这一点。

    【讨论】:

      【解决方案2】:

      如果你只使用 PHP 的方法 setcookie() 而不是生成重定向呢?

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

      【讨论】:

        【解决方案3】:

        尝试使用RedirectResponse

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

        它将设置一个 cookie 并重定向到您指定的 url。还可以考虑将Router 注入您的侦听器以生成正确的 url。

        【讨论】:

          猜你喜欢
          • 2015-12-09
          • 2012-02-20
          • 2016-02-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-21
          相关资源
          最近更新 更多