我按照指南安装位于https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md
的FOSUserBundle我的安全档案:
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
access_control:
- { path: ^/admin/, role: ROLE_ADMIN }
然而,在完成所有步骤后,我收到一个错误:
ServiceNotFoundException: The service "security.authentication.manager" has a dependency on a non-existent service "fos_user.user_provider.username_email".
可能导致什么原因?
答案 0 :(得分:4)
您使用的是没有username_email提供商的FOSUserBundle 1.0。通过将composer.json更改为:“friendsofsymfony / user-bundle”:“dev-master”升级到FOSUserBundle 2.0,
2.0版本中有很多好东西,包括一堆有用的事件。不幸的是,它从未作为稳定版本正式发布。因此是dev-master版本。
答案 1 :(得分:0)
无法重现这一点。也许这是一个神奇的“依赖服务”错误。上次我们通过删除整个供应商目录和composer.lock文件并重新运行composer update命令来解决这个问题。也许值得一试。