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

Vác*_*mer 3 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. 
Run Code Online (Sandbox Code Playgroud)

文件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%"
Run Code Online (Sandbox Code Playgroud)

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

我尝试先执行第5步,然后重新运行第1步.但仍然是同样的错误.

有任何想法吗?

Ale*_*eri 5

尝试这样缩进:

fos_user:
    db_driver: orm 
    firewall_name: main
    user_class: Entity\User
    from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%"
Run Code Online (Sandbox Code Playgroud)

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


Geo*_*vic 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']
Run Code Online (Sandbox Code Playgroud)

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

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

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

如果你需要弄清楚symfony版本3.x和4.xi之间的变化,建议查看这篇文章:配置结构 - 取自symfony blog 一种开发应用程序的新方法