Symfony教义 auto_mapping 未被承认

2022-08-30 18:01:01

我已经添加了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: ~

错误

“doctrine.orm”下未被承认的备选方案“naming_strategy、auto_mapping、dql”


答案 1

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

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

但是,如果要更改实体管理器的名称或使用倍数,则需要使用指定每个实体管理器的完整配置。

Shortened Config

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

Full Config

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

答案 2

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

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

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


推荐