В соответствии с ответом Джереми:
Поскольку ваш маршрут default_index
находится выше, переход на /register
приводит к совпадению этого маршрута. Поскольку он расположен перед маршрутом sf_guard_register
, «учитывается» только первое совпадение.
Ваш routing.yml должен выглядеть так:
sf_guard_register:
url: /register
param: { module: user, action: register }
sf_guard_signin:
url: /login
param: { module: sfGuardAuth, action: signin }
sf_guard_signout:
url: /logout
param: { module: sfGuardAuth, action: signout }
sf_guard_password:
url: /request_password
param: { module: sfGuardAuth, action: password }
homepage:
url: /
param: { module: main, action: index }
default_index:
url: /:module
param: { action: index }
default:
url: /:module/:action/*
Кроме того, существует ряд рекомендаций, которым вы, возможно, захотите следовать:
- Отключение маршрутов по умолчанию и использование только именованной маршрутизации, такой как
@homepage
, быстрее, чем поиск Symfony, какой маршрут будет соответствовать при использовании помощников url_for
или link_to
. Поэтому отключите маршрутизацию по умолчанию и создайте маршруты самостоятельно. Затем используйте имя маршрута при создании URL.
- Наиболее часто используемые маршруты следует размещать вверху, например, если у вас есть ссылка для регистрации на всех страницах, вы должны поместить
sf_guard_register
вверху.
Только мои 5 центов - надеюсь, вы найдете это полезным; -)