我使用symfony框架实现了一个基本的身份验证系统。它按预期工作。但是我希望还有一个功能。
在logout
之后,我应该被重定向到之前的位置。为了实现这个功能,我遵循了以下问题
Symfony2 Dynamic Logout Target?
但它给了我一条错误信息。
无法为命名路由“dynamic_route_name”生成URL 这种路线不存在。
任何想法,为什么会这样?
答案 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>