Symfony的动态注销目标

时间:2015-11-13 18:30:19

标签: php symfony authentication


我使用symfony框架实现了一个基本的身份验证系统。它按预期工作。但是我希望还有一个功能。

logout之后,我应该被重定向到之前的位置。为了实现这个功能,我遵循了以下问题 Symfony2 Dynamic Logout Target?

但它给了我一条错误信息。

  

无法为命名路由“dynamic_route_name”生成URL   这种路线不存在。

任何想法,为什么会这样?

1 个答案:

答案 0 :(得分:0)

我假设您使用了示例帖子中的以下代码

return new RedirectResponse($this->container->get('router')->generate('dynamic_route_name'));

这要求路由dynamic_route_name存在,这不会真正带你到上一页,而是静态路由(如果你愿意,你可以在控制器中做各种技巧)< / p>

相反,您可以尝试第二个答案并使用

$target_url = $request->query->get('target_url')
                  ? $request->query->get('target_url')
                  : "/";
    return new RedirectResponse($target_url);

其中target_url是您要重定向到的路线(在模板中设置为当前路线)或您可以用来确定要转到哪个页面的任何其他逻辑

要在注销后重定向到当前页面,您可以按如下方式设置注销链接:

<a href="{{ path('logout', {'target_url': app.request.uri})  }}">Logout</a>