Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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_Logout - Fatal编程技术网

Php 找不到Symfony2注销控制器

Php 找不到Symfony2注销控制器,php,symfony,logout,Php,Symfony,Logout,我已设法使登录名在Symfony2中工作,但我在/logout中遇到问题。我收到一个异常,它无法找到路由的控制器。然而,我的印象是Symfony处理注销过程,就像它处理登录一样 my security.yml文件的一部分: firewalls: login_firewall: pattern: ^/login/ anonymous: ~ secured_area: pattern: ^/(dashboard|direc

我已设法使登录名在Symfony2中工作,但我在/logout中遇到问题。我收到一个异常,它无法找到路由的控制器。然而,我的印象是Symfony处理注销过程,就像它处理登录一样

my security.yml文件的一部分:

firewalls:
    login_firewall:
        pattern:    ^/login/
        anonymous:  ~
    secured_area:
        pattern:    ^/(dashboard|directories|login_check)/
        anonymous: ~
        form_login:
            login_path:  /login/
            check_path:  /login_check/
        logout:
            path:   /logout/
            target: /
我的相关路线:

_login:
    pattern: /login/
    defaults: { _controller: NanoBundle:Login:index } 

_login_check:
    pattern: /login_check/

_logout:
    pattern: /logout/
-编辑:注销按钮代码:

<a href="{{path('_logout')}}">Logout</a>

我最终用security.yml部分修复了它:

    secured_area:
        pattern:    .*
        security: true
        form_login:
            login_path:  /login/
            check_path:  /login_check/
        logout:
            path: /logout/
            invalidate_session: true
security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager

encoders:
    FOS\UserBundle\Model\UserInterface: sha512

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
        logout:       true
        anonymous:    true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/*, role: ROLE_ADMIN }
     # URL of FOSUserBundle which need to be available to anonymous users
    - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

感谢大家在这方面的帮助:

使用此security.yml部分修复了它:

    secured_area:
        pattern:    .*
        security: true
        form_login:
            login_path:  /login/
            check_path:  /login_check/
        logout:
            path: /logout/
            invalidate_session: true
security:
    providers:
        fos_userbundle:
            id: fos_user.user_manager

encoders:
    FOS\UserBundle\Model\UserInterface: sha512

firewalls:
    main:
        pattern: ^/
        form_login:
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
        logout:       true
        anonymous:    true

access_control:
    - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin/*, role: ROLE_ADMIN }
     # URL of FOSUserBundle which need to be available to anonymous users
    - { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: ROLE_ADMIN

试试这可能会对你有帮助。:

请显示你的注销按钮列表。如果我的注销按钮是“请”,请发布所有路由。yml。看起来您的_注销路径是在其他常规表达式下的。没有关于注销的额外行,它位于文件的末尾。因此,也许我应该编辑模式设置,尽管我认为这不会有太大变化,考虑到登录检查也很有效,当我访问site.local/logout/时,我也会直接得到错误。不知怎的,它没有被抓住,我想…@QuintenVK:也许它能帮助别人。