Authentication 找不到路径“的控制器”/登录检查";-找不到匹配的控制器

Authentication 找不到路径“的控制器”/登录检查";-找不到匹配的控制器,authentication,symfony,Authentication,Symfony,这是一个常见的问题,有很多提示,但我目前无法解决它。也许有人能帮我 My security.yml: firewalls: login: pattern: ^/login$ anonymous: ~ secured_area: pattern: ^/ form_login: login_path: /login check_path: /login_check

这是一个常见的问题,有很多提示,但我目前无法解决它。也许有人能帮我

My security.yml:

firewalls:
    login:
      pattern:  ^/login$
      anonymous:  ~

    secured_area:
        pattern:    ^/
        form_login: 
          login_path:  /login
          check_path:  /login_check
        logout:
            path: /logout
            target: /

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/, roles: ROLE_USER }
这些是我配置的路由(路由器:调试输出):


我想把所有东西都放在安全的地方。但是我仍然得到上面提到的错误:找不到路径“/login\u check”的控制器。我的配置有什么问题?

在您的security.yml中,您可以通过uri或路由名称定义检查路径。请尝试使用以下路径名称:

secured_area:
        pattern:    ^/
        form_login: 
          login_path:  /login
          check_path:  login_check
        logout:
            path: /logout
            target: /
或 您可以像这样在securityController中创建自定义安全检查路径

/**
 * @Route("/login_check", name="_security_check")
 */
 public function securityCheckAction()
 {

 }

您可以在安全配置文件中定义
检查路径:\u security\u check
,这太疯狂了。Symfony没有错误。我使用Jquerymobile 1.3.1作为前端,每次登录后浏览器中的url都指向它。我在登录后获得了正确的内容,但在查看源代码时,我看到了错误:无法找到路径“/login\u check”的控制器。当我使用浏览器刷新按钮时,我会看到经典的symfony 2故障站点


当我删除所有jQueryMobileJS和css时,登录系统会按预期工作。也许我需要将登录表单从post更改为某种ajax提交。

谢谢回复。第一个不起作用,我得到一个空白页。第二个解决方案部分工作,我现在得到“控制器必须返回响应(给定null)。您是否忘记在控制器中的某个位置添加return语句?(500内部服务器错误)。。。我知道我可以用“returnnewresponse”(“”)来解决这个问题但是我想,我不需要实现这样一个控制器???登录后,我没有被重定向到“/”,我继续“/login\u check”。Symfony标准软件包对此有一个完美的演示,请检查src/Acme/DemoBundle/Controller/SecuredController.phpplus以获取删除/登录\u签出注释登录防火墙线以及访问控制线。把anonymous:~放在安全区域下:看看会发生什么。一旦你让它工作,然后你可以添加访问控制回来。我认为你根本不需要登录防火墙。您应该为所有路径创建命名路由。我认为S2.3中有要求。但登录检查不应指向控制器。form_登录侦听器将拦截它。
/**
 * @Route("/login_check", name="_security_check")
 */
 public function securityCheckAction()
 {

 }