_locale in form login Symfony2

时间:2014-08-28 12:16:48

标签: php symfony

我需要重写防火墙才能使用_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

2 个答案:

答案 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 }
...
相关问题