我正在使用登录并在我的Symfony应用程序中使用fosuserBundle在同一页面上注册(我的结构与this guy相同。所有工作都没有任何问题。但是现在如果我去/ register url,我正在获取注册表单。如果可能,我希望用户只需访问登录模板中的注册表单。
我想过不允许获取请求注册路径,但我不确定它是否是正确的方法还是有另一种更好的方法来实现它
如果有人可以帮助我,我将不胜感激。
答案 0 :(得分:1)
您可以访问/注册,因为您导入了所有FOSUserBundle路由,如此
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
或者像这样
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
registration.xml路由文件是必要的,因为它具有在注册后将用户保存在数据库中的路由,因此您无法真正删除其导入
您可以通过在导入FOSUserBundle路由之前定义带路径/注册的路由并重定向到您的(登录和注册)页面来解决此问题,当用户转到 / register url时Symfony将开始在** app / config / routing.yml *文件中查找匹配项,并将返回它找到的第一个匹配项,它将是您新定义的路由,而不是来自FOSUserBundle的注册路由
这不是一个真正的解决方案,它更像是一个黑客,我在我的一个项目中遇到了同样的问题而且工作得很好
我希望这会有所帮助