Symfony3.4配置错误:Doctrine DBAL下存在未识别配置选项
解决SonataMediaBundle生成实体时的Doctrine配置错误
我刚帮你定位到问题所在啦!你遇到的报错是因为把Doctrine ORM的配置项错误地放到了DBAL节点下。auto_generate_proxy_classes、naming_strategy和auto_mapping这些都是ORM层面的配置,不属于DBAL(数据库连接层)的配置范畴,所以Symfony无法识别它们。
修正后的Doctrine配置
把你的config.yml里的Doctrine部分改成下面这样,把错误放错位置的选项移到orm节点下:
doctrine: dbal: driver: pdo_mysql host: '%database_host%' port: '%database_port%' dbname: '%database_name%' user: '%database_user%' password: '%database_password%' charset: UTF8 mapping_types: enum: string # if using pdo_sqlite as your database driver: # 1. add the path in parameters.yml # e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite' # 2. Uncomment database_path in parameters.yml.dist # 3. Uncomment next line: #path: '%database_path%' types: json: Sonata\Doctrine\Types\JsonType orm: auto_generate_proxy_classes: '%kernel.debug%' naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true
后续操作步骤
- 先清除Symfony缓存,避免旧配置残留:
php bin/console cache:clear --env=dev
- 重新执行Sonata的实体生成命令:
php bin/console sonata:easy-extends:generate --dest=src SonataMediaBundle
- 生成实体后,别忘了更新数据库结构:
php bin/console doctrine:schema:update --force
这样应该就能顺利生成SonataMediaBundle的实体类,继续推进你的Symfony博客项目啦!
内容的提问来源于stack exchange,提问作者Newbiedev
相关产品推荐
相关产品推荐

