Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 找不到路径“的控制器”/登录检查";-symfony2_Php_Symfony_Authentication_Login - Fatal编程技术网

Php 找不到路径“的控制器”/登录检查";-symfony2

Php 找不到路径“的控制器”/登录检查";-symfony2,php,symfony,authentication,login,Php,Symfony,Authentication,Login,我知道这是一个常见的问题。关于这个话题的几个问题已经发布了我已经尝试了这些问题中推荐的所有解决方案,但都没有成功。 我发现如果我将我的表单\u登录放在防火墙后面,就会出现此问题。但我在防火墙中没有任何额外的层,所以路径应该像文档中描述的那样简单 Mysecurity.yml # app/config/security.yml security: encoders: Joy\JoyBundle\Entity\User: algorithm:

我知道这是一个常见的问题。关于这个话题的几个问题已经发布了我已经尝试了这些问题中推荐的所有解决方案,但都没有成功。

我发现如果我将我的
表单\u登录
放在
防火墙
后面,就会出现此问题。但我在防火墙中没有任何额外的层,所以路径应该像文档中描述的那样简单

Mysecurity.yml

# app/config/security.yml
security:
    encoders:
        Joy\JoyBundle\Entity\User:
            algorithm:        sha512
            encode_as_base64: true
            iterations:       1

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

    providers:
        administrators:
            entity: { class: JoyBundle:User, property: username }

    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false

        login:
            pattern:  ^/login
            security: false

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

    access_control:
        - { path: ^/signup, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_ADMIN }
我的路由.yml
app/config

# app/config/routing.yml
login:
    path: /login
    defaults: { _controller: JoyBundle:Security:login }

login_check:
    path: /login_check

joy_hello:
    resource: "@JoyBundle/Resources/config/routing.yml"
    prefix: /
因此,我在访问
app\u dev.php/
时执行登录检查,但在登录表单中按submit后显示该错误

找不到路径“/login\u check”的控制器。也许你 忘记在路由配置中添加匹配的路由?404 未找到-NotFoundHttpException

我试过了

login_path: /login
check_path: /login_check

没用。我错过了什么??请帮助….

路由
登录检查
不在防火墙后面,因为
登录检查
路由模式与没有安全性的
登录检查
防火墙匹配

login:
    pattern:  ^/login     # This matches /login_check
    security: false
解决方案1:将此更改为

login:
    pattern:  ^/login$
    security: false
解决方案2:完全删除
登录
防火墙,并将此规则添加到
访问控制

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }

security.yml中,尝试在
securied\u区域
部分设置提供程序:

secured_area:
    provider: administrators
    pattern: ^/
    anonymous: ~

php应用程序/控制台路由器:debug
说明了什么?@Flask我是symfony2的新手。所以我不知道所有的意思。给出该命令将显示名称、方法、方案、主机和路径的列表。在该列表中有login\u check ANY/login\u check
login\u check:path:/login\u check
设置默认控制器并action@crack哪里my routing.yml已经包含login\u check:path:/login\u check您正在使用fosuserbundle吗?此解决方案现在在同一页面中不断循环。点击“提交”后,登录页面会一次又一次地出现。但根据Symfony的profiler,用户已经登录了?我想,如果您想在成功登录后转到另一个路由,您必须创建一个身份验证处理程序,它实现了
AuthenticationSuccessHandlerInterface
。或者最简单的方法是,尝试访问安全路由,如果您未登录,Symfony会将您重定向到登录页面,成功登录后,它会自动重定向到请求的页面。让我再试一次。我想这会管用的。可能是我错过了什么