Php 找不到Symfony2管理员登录路由配置

Php 找不到Symfony2管理员登录路由配置,php,symfony,frameworks,Php,Symfony,Frameworks,我正在为Symfony2登录配置添加管理员登录。我发现一个错误,说找不到“adminlogged”路径。路由配置中没有匹配的路由 Security.yml security: encoders: MPW\TemplateBundle\Entity\User: algorithm: sha1 encode_as_base64: false iterations: 1 MPW\TemplateBundle\Entity\A

我正在为Symfony2登录配置添加管理员登录。我发现一个错误,说找不到“adminlogged”路径。路由配置中没有匹配的路由

Security.yml

security:
encoders:
    MPW\TemplateBundle\Entity\User:
        algorithm: sha1
        encode_as_base64: false
        iterations:       1
    MPW\TemplateBundle\Entity\Admin:
        algorithm: sha1
        encode_as_base64: false
        iterations:       1

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

providers:
     users:
        entity: { class: TemplateBundle:User, property: email }
     admin:
        entity: { class: TemplateBundle:Admin, property: email }
     #my_custom_hwi_provider:
     #   id: my_user_provider


firewalls:
    secured_area:
        pattern:    ^/
        anonymous: ~
        provider: users
        form_login:
            login_path:  user_login
            check_path:  login_check
            default_target_path: dashboard
        logout:
            path: log_out

    admin_secured_area:
        pattern:   ^/
        anonymous: ~
        provider: admin
        form_login:
            login_path:  admin_login
            check_path:  admin_check
            default_target_path: /admin_dashboard

access_control:
   - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
   - { path: ^/admin-login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
Routing.yml:

user_login:
    pattern:  /login
    defaults: { _controller: LandingPageBundle:Landing:login }

admin_login:
    pattern:  /admin-login
    defaults: { _controller: LandingPageBundle:Landing:adminLogin }

login_check:
    pattern:  /logged
admin_check:
    pattern:  /adminlogged

用户登录正常,但管理员登录功能出现问题

您必须为
管理员检查定义一个控制器
路由:

路由.yml

没有用于登录检查的控制器,因为它由Symfony2管理:

您不需要为/login\u check URL实现控制器,因为防火墙将自动捕获并处理提交到此URL的任何表单。但是,您必须有一个用于此URL的路由(如图所示),以及一个用于注销路径的路由(请参阅注销)


来源:。

使用此解决方案,URL更改为/adminlogged,并再次登录到管理员登录页面。我想这里还需要做更多的工作。是的,您必须在控制器中添加一个函数,以便为管理员检查密码。如果找到解决方案,我将稍后更新我的答案。很抱歉,我不知道如何模拟
登录检查
路由及其控制器。
实体\用户
实体\管理员
之间有什么区别?您是否尝试对两个角色只使用一个类?我认为只为用户设置一个实体,并设置一个
角色
列以区分普通用户和管理员更容易。
login_check:
    pattern:  /logged
admin_check:
    pattern:  /adminlogged
    defaults: { _controller: LandingPageBundle:Landing:adminLogin } # line added