Symfony 原则 auto_mapping 无法识别

Symfony doctrine auto_mapping Unrecognized

我添加了 SonataUserBundle,但出现错误

config.yml

doctrine: 
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true

        entity_managers:
            default:
                mappings:
                    ApplicationSonataUserBundle: ~
                    SonataUserBundle: ~

错误

Unrecognized options "naming_strategy, auto_mapping, dql" under "doctrine.orm"

如果将 auto_mapping 设置为 true,您认为有必要手动配置映射吗?

Doctrine 的 auto_mapping 功能从每个 bundle 的 Entity/ 目录加载注释配置,并在 Resources/config/doctrine 目录中查找其他格式(例如 YAML,XML)。

http://symfony.com/doc/current/reference/configuration/doctrine.html#custom-mapping-entities-in-a-bundle

您正在混合使用缩短配置和完整配置。

如果您只想使用默认的实体管理器,那么您可以将所有内容放在 orm 键下(缩短的配置)。这将被重新映射,以便它在 doctrine.orm.entity_managers.default 下被捆绑扩展。

但是,如果您想更改实体管理器的名称或使用多个实体管理器,那么您将需要使用指定每个实体管理器的完整配置。

缩短配置

doctrine: 
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            ApplicationSonataUserBundle: ~
            SonataUserBundle: ~

完整配置

doctrine: 
    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        entity_managers:
            default:
                naming_strategy: doctrine.orm.naming_strategy.underscore
                auto_mapping: true
                mappings:
                    ApplicationSonataUserBundle: ~
                    SonataUserBundle: ~