我需要重写防火墙才能使用_locale。现在我有这个配置,除了一件事情它工作正常。在login_check上,我丢失了URL的_locale部分,然后重新路由到默认语言环境。如何修改它以在login_check中使用_locale?
client_firewall:
pattern: ^/client
anonymous: ~
provider: clients
form_login:
login_path: /client/login
check_path: /client/login_check
username_parameter: login
password_parameter: password
default_target_path: /client/cabinet
logout:
intention: logout
path: /client/logout
target: /
success_handler: ~
invalidate_session: true
答案 0 :(得分:0)
也许这样的事情应该有效。在你的security.yml:
form_login:
login_path: login
check_path: login_check
always_use_default_target_path: true
default_target_path: /client/cabinet
和check_path在你的包中的routing.yml中定义:
login:
pattern: /
defaults: { ... }
login_check:
pattern: /login_check
答案 1 :(得分:0)
要使用本地化防火墙URL,通常需要使用路由配置防火墙,而不是URL:
...
form_login:
login_path: login
check_path: login_check
default_target_path: cabinet
...
然后在您的路由配置中,您只需本地化网址
...
login:
path: /{_locale}/login
defaults: { _controller: AcmeBundle:Controller:login }
login_check:
path: /{_locale}/login_check
defaults: { _controller: AcmeBundle:Controller:loginCheck }
cabinet:
path: /{_locale}/cabinet
defaults: { _controller: AcmeBundle:Controller:cabinet }
...