Php 找不到Symfony2管理员登录路由配置
我正在为Symfony2登录配置添加管理员登录。我发现一个错误,说找不到“adminlogged”路径。路由配置中没有匹配的路由 Security.ymlPhp 找不到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
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