首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Symfony 3.4 -安装FOSUserBundle时不存在的服务

Symfony 3.4 -安装FOSUserBundle时不存在的服务
EN

Stack Overflow用户
提问于 2018-09-24 19:32:15
回答 1查看 2.3K关注 0票数 1

我刚刚使用Symfony3.4启动了一个新的空白项目,首先在这个文档页面之后配置了文档

我已经尝试过两次删除所有内容,然后从头开始,但是在清除缓存时遇到了这个错误:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
[...]
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

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
app:
    resource: '@AppBundle/Controller/'
    type: annotation
fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"

security.yml

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
$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版的FOSUserBundleSymfony 3.4

EN

回答 1

Stack Overflow用户

发布于 2020-01-27 13:17:20

对于Symfony 3.4和FOSUserBundle 2.1,这个问题似乎仍然存在。

Fix:在security.yml中更改以下内容

代码语言:javascript
运行
复制
security:
    firewalls:
        main:
            user_checker: fos_user.user_checker

代码语言:javascript
运行
复制
security:
    firewalls:
        main:
            user_checker: security.user_checker
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52486157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档