FOSUser Bundle必须配置路径“fos_user”中的子节点“db_driver”

时间:2018-02-28 16:47:35

标签: php symfony fosuserbundle

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

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步。但仍然是同样的错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

在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或转到其包装专家页面并获取最新版本FOSUserBundle Packagist

这应该使它安装没有错误。

如果您需要弄清楚symfony版本3.x和4.x之间发生了什么变化,我建议您查看这篇文章:Configuration Structure-来自symfony博客A new way to develop applications

答案 1 :(得分:2)

尝试这样缩进:

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

因为需要编写yml文件并使用所有必要的空格缩进