繁体   English   中英

_locale形式登录Symfony2

[英]_locale in form login Symfony2

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

也许这样的事情应该起作用。 在您的security.yml中:

form_login:
  login_path: login
  check_path: login_check
  always_use_default_target_path: true
  default_target_path: /client/cabinet

和bundle中的routing.yml中的check_path定义:

login:
  pattern: /
  defaults: { ... }

login_check:
   pattern: /login_check

要使用本地化的防火墙URL,通常使用路由而不是URL配置防火墙:

...
form_login:
    login_path: login
    check_path: login_check
    default_target_path: cabinet
    ...

然后,在路由配置中,您只需本地化URL:

...
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 }
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM