I've installed FOSUserBundle and I'd like to customize the urls to be /account/login
, /account/register
, /account/logout
instead of /login
, /register
, /logout
我已经安装了FOSUserBundle,我想自定义网址为/ account / login,/ account / register,/ account / logout而不是/ login,/ register,/ logout
I know I can modify the routing config of the bundle, but it doesn't seem to be the proper way.
我知道我可以修改捆绑包的路由配置,但它似乎不是正确的方法。
1 个解决方案
#1
75
How to override / change FOSUserBundle's routes
You can override i.e the /register
route in your app/config/routing.yml
by re-declaring it after importing FOSUserBundle's XML routes as resources.
您可以通过在将FOSUserBundle的XML路由作为资源导入后重新声明它来覆盖app / config / routing.yml中的/ register路由。
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
# ...
fos_user_registration_register:
path: /account/register
defaults: { _controller: FOSUserBundle:Registration:register }
... or just change the prefix when importing:
...或者只是在导入时更改前缀:
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /account/register
# no need to override the route
The same goes for /login
and /logout
:
/ login和/ logout也是如此:
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
# ...
fos_user_security_login:
path: /account/login
defaults: { _controller: FOSUserBundle:Security:login, _method: POST }
fos_user_security_logout:
path: /account/login
defaults: { _controller: FOSUserBundle:Security:logout, _method: POST }
Another way to override login and logout url's
login and logout paths can aswell be configured directly in your app/config/security.yml
:
登录和注销路径也可以直接在app / config / security.yml中配置:
security:
firewalls:
your_firewall:
# ...
form_login:
login_path: /account/login # instead of fos_user_security_login
# ...
logout:
path: /account/logout # instead of fos_user_security_logout
# ...
List of all of FOSUserBundle's routes in YAML format
You can directly change and then include these in your app/config/routing.yml
( no need to import the ones the bundle provides as resources then) ... or put them all into a single file and include that one as a resource...
你可以直接更改然后将它们包含在你的app / config / routing.yml中(不需要将bundle提供的那些作为资源导入)...或者将它们全部放入一个文件中并将其作为资源包含在内。 ..
# -> from @FOSUserBundle/Resources/routing/change_password.xml
fos_user_change_password:
pattern: /profile/password/change
defaults: { _controller: FOSUserBundle:ChangePassword:changePassword }
requirements:
_method: GET|POST
# -> from @FOSUserBundle/Resources/routing/group.xml
fos_user_group_list:
pattern: /groups/list
defaults: { _controller: FOSUserBundle:Group:list }
requirements:
_method: GET
fos_user_group_new:
pattern: /groups/new
pattern:
defaults: { _controller: FOSUserBundle:Group:new }
requirements:
_method: GET
fos_user_group_show:
pattern: /groups/{groupname}
defaults: { _controller: FOSUserBundle:Group:show }
requirements:
_method: GET
fos_user_group_edit:
pattern: /groups/{groupname}/edit
defaults: { _controller: FOSUserBundle:Group:edit }
requirements:
_method: GET|POST
fos_user_group_delete:
pattern: /groups/{groupname}/delete
defaults: { _controller: FOSUserBundle:Group:delete }
requirements:
_method: GET
# -> from @FOSUserBundle/Resources/routing/profile.xml
fos_user_profile_show:
pattern: /profile/show
defaults: { _controller: FOSUserBundle:Profile:show }
requirements:
_method: GET
fos_user_profile_edit:
pattern: /profile/edit
defaults: { _controller: FOSUserBundle:Profile:edit }
requirements:
_method: GET|POST
# -> from @FOSUserBundle/Resources/routing/registration.xml
fos_user_registration_register:
pattern: /registration
defaults: { _controller: FOSUserBundle:Registration:register }
requirements:
_method: GET|POST
fos_user_registration_check_email:
pattern: /registration/check-email
defaults: { _controller: FOSUserBundle:Registration:checkEmail }
requirements:
_method: GET
fos_user_registration_confirm:
pattern: /registration/confirm/{token}
defaults: { _controller: FOSUserBundle:Registration:confirm }
requirements:
_method: GET
fos_user_registration_confirmed:
pattern: /registration/confirmed
defaults: { _controller: FOSUserBundle:Registration:confirmed }
requirements:
_method: GET
# -> from @FOSUserBundle/Resources/routing/resetting.xml
fos_user_resetting_request:
pattern: /profile/password/reset
defaults: { _controller: FOSUserBundle:Resetting:request }
requirements:
_method: GET
fos_user_resetting_send_email:
pattern: /profile/password/reset
defaults: { _controller: FOSUserBundle:Resetting:sendEmail }
requirements:
_method: POST
fos_user_resetting_check_email:
pattern: /profile/password/reset/check-email
defaults: { _controller: FOSUserBundle:Registration:checkEmail }
requirements:
_method: GET
fos_user_resetting_reset:
pattern: /profile/password/reset/{token}
defaults: { _controller: FOSUserBundle:Registration:reset }
requirements:
_method: GET|POST
# -> from @FOSUserBundle/Resources/routing/security.xml
fos_user_security_login:
pattern: /login
defaults: { _controller: FOSUserBundle:Security:login }
requirements:
_method: GET|POST
fos_user_security_check:
pattern: /login_check
defaults: { _controller: FOSUserBundle:Security:check }
fos_user_security_logout:
pattern: /logout
defaults: { _controller: FOSUserBundle:Security:logout }
requirements:
_method: GET|POST
#1
75
How to override / change FOSUserBundle's routes
You can override i.e the /register
route in your app/config/routing.yml
by re-declaring it after importing FOSUserBundle's XML routes as resources.
您可以通过在将FOSUserBundle的XML路由作为资源导入后重新声明它来覆盖app / config / routing.yml中的/ register路由。
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /register
# ...
fos_user_registration_register:
path: /account/register
defaults: { _controller: FOSUserBundle:Registration:register }
... or just change the prefix when importing:
...或者只是在导入时更改前缀:
fos_user_register:
resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
prefix: /account/register
# no need to override the route
The same goes for /login
and /logout
:
/ login和/ logout也是如此:
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
# ...
fos_user_security_login:
path: /account/login
defaults: { _controller: FOSUserBundle:Security:login, _method: POST }
fos_user_security_logout:
path: /account/login
defaults: { _controller: FOSUserBundle:Security:logout, _method: POST }
Another way to override login and logout url's
login and logout paths can aswell be configured directly in your app/config/security.yml
:
登录和注销路径也可以直接在app / config / security.yml中配置:
security:
firewalls:
your_firewall:
# ...
form_login:
login_path: /account/login # instead of fos_user_security_login
# ...
logout:
path: /account/logout # instead of fos_user_security_logout
# ...
List of all of FOSUserBundle's routes in YAML format
You can directly change and then include these in your app/config/routing.yml
( no need to import the ones the bundle provides as resources then) ... or put them all into a single file and include that one as a resource...
你可以直接更改然后将它们包含在你的app / config / routing.yml中(不需要将bundle提供的那些作为资源导入)...或者将它们全部放入一个文件中并将其作为资源包含在内。 ..
# -> from @FOSUserBundle/Resources/routing/change_password.xml
fos_user_change_password:
pattern: /profile/password/change
defaults: { _controller: FOSUserBundle:ChangePassword:changePassword }
requirements:
_method: GET|POST
# -> from @FOSUserBundle/Resources/routing/group.xml
fos_user_group_list:
pattern: /groups/list
defaults: { _controller: FOSUserBundle:Group:list }
requirements:
_method: GET
fos_user_group_new:
pattern: /groups/new
pattern:
defaults: { _controller: FOSUserBundle:Group:new }
requirements:
_method: GET
fos_user_group_show:
pattern: /groups/{groupname}
defaults: { _controller: FOSUserBundle:Group:show }
requirements:
_method: GET
fos_user_group_edit:
pattern: /groups/{groupname}/edit
defaults: { _controller: FOSUserBundle:Group:edit }
requirements:
_method: GET|POST
fos_user_group_delete:
pattern: /groups/{groupname}/delete
defaults: { _controller: FOSUserBundle:Group:delete }
requirements:
_method: GET
# -> from @FOSUserBundle/Resources/routing/profile.xml
fos_user_profile_show:
pattern: /profile/show
defaults: { _controller: FOSUserBundle:Profile:show }
requirements:
_method: GET
fos_user_profile_edit:
pattern: /profile/edit
defaults: { _controller: FOSUserBundle:Profile:edit }
requirements:
_method: GET|POST
# -> from @FOSUserBundle/Resources/routing/registration.xml
fos_user_registration_register:
pattern: /registration
defaults: { _controller: FOSUserBundle:Registration:register }
requirements:
_method: GET|POST
fos_user_registration_check_email:
pattern: /registration/check-email
defaults: { _controller: FOSUserBundle:Registration:checkEmail }
requirements:
_method: GET
fos_user_registration_confirm:
pattern: /registration/confirm/{token}
defaults: { _controller: FOSUserBundle:Registration:confirm }
requirements:
_method: GET
fos_user_registration_confirmed:
pattern: /registration/confirmed
defaults: { _controller: FOSUserBundle:Registration:confirmed }
requirements:
_method: GET
# -> from @FOSUserBundle/Resources/routing/resetting.xml
fos_user_resetting_request:
pattern: /profile/password/reset
defaults: { _controller: FOSUserBundle:Resetting:request }
requirements:
_method: GET
fos_user_resetting_send_email:
pattern: /profile/password/reset
defaults: { _controller: FOSUserBundle:Resetting:sendEmail }
requirements:
_method: POST
fos_user_resetting_check_email:
pattern: /profile/password/reset/check-email
defaults: { _controller: FOSUserBundle:Registration:checkEmail }
requirements:
_method: GET
fos_user_resetting_reset:
pattern: /profile/password/reset/{token}
defaults: { _controller: FOSUserBundle:Registration:reset }
requirements:
_method: GET|POST
# -> from @FOSUserBundle/Resources/routing/security.xml
fos_user_security_login:
pattern: /login
defaults: { _controller: FOSUserBundle:Security:login }
requirements:
_method: GET|POST
fos_user_security_check:
pattern: /login_check
defaults: { _controller: FOSUserBundle:Security:check }
fos_user_security_logout:
pattern: /logout
defaults: { _controller: FOSUserBundle:Security:logout }
requirements:
_method: GET|POST