【发布时间】:2018-04-13 14:32:10
【问题描述】:
我有一个应用程序已经工作了一段时间,它可以完全登录并创建新的用户功能,并且我试图切换用户 - 以更改角色 - 我无法再次登录。在对代码进行了一些挖掘之后,我发现登录后会抛出 302 代码状态,因此日志记录过程停止工作。
我的 SecurityController 中有这段代码:
return new RedirectResponse('/sys-admin/');
并将该代码更改为:
return $this->forward('AppBundle:SystemAdmin:index', array());
让它工作,我再次登录,但现在我所有的路线都停止工作了,我的意思是在我看来有类似的按钮:
<a href="{{ path('system_admin_client') }}"
class="btn pmd-btn-flat btn-default">Go!</a>
当我单击该按钮时,我已注销并重定向到登录页面,并且在任何浏览器的网络选项卡中,我都可以看到路由 sys-admin/client 的状态代码为 302,因为我已注销。
运行 bin/console debug:router 显示我所有的路线都在那里,对于这个示例,运行 bin/console router:match /sys-admin/client 还显示了与控制器的匹配以及所有信息。
这就是我的路线的样子:
app_system_admin:
prefix: /sys-admin
resource: "@AppBundle/Resources/config/routing/sys_admin.yml"
sys_admin.yml
system_admin_client:
path: /client
defaults: { _controller: AppBundle:SystemAdmin:index}
我不知道出了什么问题!任何帮助将不胜感激。谢谢!
更多信息:我使用的是 Symfony 4.0.4,如果我尝试在任何路由上进行转发之类的操作,但重定向不起作用。
【问题讨论】:
-
尝试将
prefix: /sys-admin添加到 sys-admin.yml 中。并检查您的安全规则,您的路由器规则看起来不错。 -
@Gedweb 前缀已经添加到父配置文件中。 Yamen Nassif,我认为您的问题中的文件名有错字,它是以名称
sys_admin.yml导入的,在下面您将其命名为“sys-admin.yml”。这令人困惑。 -
@Philippe-B- 不是真的!!这是我的错误,我在这里写错了,因为我说路由器调试正在查看路由!
-
@Philippe-B- 我在问题中修复了它,它只是 SOF 上的错字
-
能否把
{{ path('system_admin_client') }}生成的实际路径贴在你的按钮中(整个标签)?
标签: symfony