我正在尝试在安装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步。但仍然是同样的错误。
有什么想法吗?
答案 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文件并使用所有必要的空格缩进