Login Symfony2:找不到路径“的控制器”/en/登录“检查”;

Login Symfony2:找不到路径“的控制器”/en/登录“检查”;,login,symfony,Login,Symfony,我正在Symfony中创建一个登录表单,遵循Symfony书籍的第页中提供的示例 我在security.yml、routing.yml中创建了必要的配置,还实现了ControllerAction和Twig模板 以下是安全和路由文件的外观:- security.yml Firewalls: # defaut login area for standard users main: switch_user: true context:

我正在Symfony中创建一个登录表单,遵循Symfony书籍的第页中提供的示例

我在security.yml、routing.yml中创建了必要的配置,还实现了ControllerAction和Twig模板

以下是安全和路由文件的外观:-

security.yml

Firewalls:
    # defaut login area for standard users
    main:
        switch_user:        true
        context:            user
        pattern:            .*
        form_login:
            provider:       fos_userbundle
            login_path:     /login
            use_forward:    false
            check_path:     /login_check
            failure_path:   null
        logout:             true
        anonymous:          true
login:
    pattern:   /{_locale}/login
    defaults:  { _controller: XYZSiteBundle:SiteUser:login }
login_check:
    pattern:   /{_locale}/login_check
routing.yml

Firewalls:
    # defaut login area for standard users
    main:
        switch_user:        true
        context:            user
        pattern:            .*
        form_login:
            provider:       fos_userbundle
            login_path:     /login
            use_forward:    false
            check_path:     /login_check
            failure_path:   null
        logout:             true
        anonymous:          true
login:
    pattern:   /{_locale}/login
    defaults:  { _controller: XYZSiteBundle:SiteUser:login }
login_check:
    pattern:   /{_locale}/login_check
如您所见,
登录路径
检查路径
都位于同一防火墙下。 我仍然收到以下错误:-

找不到路径“/en/login\u check”的控制器。可能您忘记在路由配置中添加匹配的路由


我做错了什么?

您的
表单登录
部分的
检查路径
值将与
/en/login\u检查
不匹配


您必须修改它以匹配
/.*/login\u check

您的配置设置几乎正常。您的问题与路由有关。您只需将routing.yaml更改为即可解决此问题

在routing.yaml中

登录:
模式:/login默认值:{u控制器:XYZSiteBundle:SiteUser:login}

登录检查:

模式:/login\u check

因为您的\login和\logincheck模式必须与security.yaml模式匹配。您需要删除/{u locale}/login和/{u locale}/login\u检查


希望这对您有所帮助。

您的登录检查路径缺少控制器默认值,应该是:

login_check:
    pattern:   /{_locale}/login_check
    defaults:  { _controller: XYZSiteBundle:SiteUser:loginCheck }

谢谢Asish,我试过这个,但那时候对我不起作用。我已经完全改变了路线,所以不能使用这个。谢谢Florian。这是一个很有价值的建议。目前我正在使用/auth/login和/auth/login\u检查,它似乎工作正常。不过,我将来会尝试使用。*方法。或者更好的正则表达式:)这就是一个例子。类似于/(en | de | fr)/登录检查