Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony的动态注销目标_Php_Symfony_Authentication - Fatal编程技术网

Php Symfony的动态注销目标

Php Symfony的动态注销目标,php,symfony,authentication,Php,Symfony,Authentication,我使用symfony框架实现了一个基本的身份验证系统。它正在按预期工作。但我想有一个更多的功能 在注销后,我应该被重定向到以前的位置。为了实现此功能,我遵循了以下问题。 但它给了我一个错误信息 无法为命名路由“dynamic_route_name”生成URL,如下所示 这样的路线并不存在 知道为什么会发生这种情况吗?我假设您使用了示例文章中的以下代码 return new RedirectResponse($this->container->get('router')->ge


我使用symfony框架实现了一个基本的身份验证系统。它正在按预期工作。但我想有一个更多的功能

注销后
,我应该被重定向到以前的位置。为了实现此功能,我遵循了以下问题。

但它给了我一个错误信息

无法为命名路由“dynamic_route_name”生成URL,如下所示 这样的路线并不存在


知道为什么会发生这种情况吗?

我假设您使用了示例文章中的以下代码

return new RedirectResponse($this->container->get('router')->generate('dynamic_route_name'));
这就需要存在路由
动态路由\u名称
,它不会真正将您带到上一页,而是带到一个静态路由(如果您愿意,您可以在控制器中执行各种技巧)

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

$target_url = $request->query->get('target_url')
                  ? $request->query->get('target_url')
                  : "/";
    return new RedirectResponse($target_url);
其中,
target\u url
是您要重定向到的路由(在模板中设置为当前路由)或您可以用来确定要转到哪个页面的任何其他逻辑

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

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


您的路线是否有此
动态路线名称
方法?您是否定义了与路线名称
动态路线名称
匹配的控制器操作?否。我没有任何此类动态路线。实际上,我想在注销后重定向到上一页。实际上,我想在注销后重定向到上一页。那么,你是说重定向到一个静态路由,然后添加一些自定义逻辑吗?这要视情况而定。如果您当前在例如/some/page上,那么当您注销时,您想返回到/some/page还是您之前在/some/page上的页面?我想返回到/some/page在这种情况下,您可以使用上述代码,并使用ajax注销和页面刷新之类的方式将模板中的目标url设置为当前url?