FOSUser Bundle The child node "db_driver" at path "fos_user" must be configured

FOSUser Bundle The child node "db_driver" at path "fos_user" must be configured

我正在尝试在安装 FOSUser Bundle 2.0 后更新原则架构,但我一直收到此错误:

In ArrayNode.php line 238:

The child node "db_driver" at path "fos_user" must be configured. 

文件 config.yaml 在位置 /config/config.yaml:

中正确配置
framework:
translator: ~

fos_user:
db_driver: orm 
firewall_name: main
user_class: Entity\User
from_email:
    address: "%mailer_user%"
    sender_name: "%mailer_user%"

我尝试通过官方教程解决:http://symfony.com/doc/master/bundles/FOSUserBundle/index.html#prerequisites

我尝试先执行第 5 步,然后重新运行第 1 步。但仍然出现相同的错误。

有什么想法吗?

尝试这样缩进:

fos_user:
    db_driver: orm 
    firewall_name: main
    user_class: Entity\User
    from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%"

因为yml文件需要写好并且缩进所有必要的空格

在 symfony 4.x 中你需要创建一个 bundle_name.yaml 文件而不是 config.yaml 因此,在这种情况下,在 config/packages 文件夹中创建文件 fos_user.yaml。 在该文件中放置 FOSUserBundle 的配置,如下所示:

fos_user:
db_driver: orm
firewall_name: main
user_class: Entity\User
from_email:
    address: '%env(resolve:USER_ADDRESS)%'
    sender_name: '%env(resolve:SENDER_NAME)%'
framework:
    templating:
        engines: ['twig', 'php']

当然,将.env文件中的地址和sender_name定义为常量或者直接提供:"%mailer_user%"

使用 composer require friendsofsymfony/user-bundle dev-master 或访问他们的 packagist 页面并获取最新版本 FOSUserBundle Packagist

这样应该可以正确安装。

如果您需要了解 symfony 版本 3.x 和 4.x 之间的变化,我建议您查看这篇文章:Configuration Structure - taken from symfony blog A new way to develop applications