Я только что начал новый пустой проект с использованием Symfony 3.4 и прежде всего настроил FOSUserBundle после этой страницы Документация.
Я дважды пытался удалить все и снова начать с нуля, но при очистке кеша у меня возникла эта ошибка:
In CheckExceptionOnInvalidReferenceBehaviorPass.php line 31:
The service "security.authentication.provider.dao.main" has a dependency on a non-existent service "fos_user.user_checker".
config.yml
[...]
fos_user:
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
firewall_name: main
user_class: AppBundle\Entity\User
from_email:
address: "%mailer_user%"
sender_name: "%mailer_user%"
parameters.yml
parameters:
database_path: '%kernel.project_dir%/var/data/data.sqlite'
mailer_transport: smtp
mailer_host: smtp.mailtrap.io
mailer_user: ***
mailer_password: ***
secret: ***
routing.yml
app:
resource: '@AppBundle/Controller/'
type: annotation
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
user_checker: fos_user.user_checker
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
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 }
Очевидно, я добавил new FOS\UserBundle\FOSUserBundle(), в AppKernel.php
$bundles = [
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new FOS\UserBundle\FOSUserBundle(),
new AppBundle\AppBundle(),
];
Я использую версию 2.0 из FOSUserBundle и Symfony 3.4.
Блин, это решает ошибку. но .. почему в документации есть этот параметр?
Я тоже спрашиваю ... Почему в документации ...: S






Для Symfony 3.4 и FOSUserBundle 2.1 эта проблема, похоже, продолжает существовать.
Исправить:
Измените следующее в security.yml
security:
firewalls:
main:
user_checker: fos_user.user_checker
к
security:
firewalls:
main:
user_checker: security.user_checker
Вы пробовали закомментировать строку
user_checker: fos_user.user_checkerизsecurity.ymlи обновить?