限制FosUserBundle中的寄存器路径

时间:2017-04-30 18:33:23

标签: symfony post fosuserbundle

我正在使用登录并在我的Symfony应用程序中使用fosuserBundle在同一页面上注册(我的结构与this guy相同。所有工作都没有任何问题。但是现在如果我去/ register url,我正在获取注册表单。如果可能,我希望用户只需访问登录模板中的注册表单。

我想过不允许获取请求注册路径,但我不确定它是否是正确的方法还是有另一种更好的方法来实现它

如果有人可以帮助我,我将不胜感激。

1 个答案:

答案 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的注册路由

这不是一个真正的解决方案,它更像是一个黑客,我在我的一个项目中遇到了同样的问题而且工作得很好

我希望这会有所帮助