使用 YAML 在 Symfony2 中进行学说映射

2023-12-10

我有一个关于 Symfony2 中 Doctrine 的 YAML 配置的问题。

我通过“doctrine:generate:entity”创建了一个实体,并选择 YAML 作为映射格式。 这不会在 ../Entity/"MyEntity".php 上添加任何元数据,这将允许我更新或创建我的架构。

举个例子,如果我运行

./app/console doctrine:schema:create

它失败了,说:

[RuntimeException]                                                 
Bundle "MySuperBundle" does not contain any mapped entities.

我的自动映射已设置为“true”。

如果我选择使用注释配置,这不会成为问题。

我错过了什么?我还应该采取任何额外的步骤吗?

预先感谢您,问候,

Ivan


我刚刚在查看 Doctrine 配置初始化代码时度过了一段有趣的时光。我发现的是:

  • 使用 auto_mapping 会导致为单个默认实体管理器设置各种默认值;它留下了type值为 false
  • If type为 false 时,配置代码会在默认目录中查找可能的配置文件,一旦找到有效扩展名的文件,它就会按照顺序决定这就是配置的方式xml, yml, php
  • 如果它没有找到它所假设的任何一个annotation

你还有什么其他的吗?Bundle/Resources/config/doctrine文件夹?如果是这样,它可能会阻止自动检测。

除此之外,基本上如果您使用了默认值,并且有一些实体类和有效的配置,那么您正在做的事情应该无需任何额外的配置即可工作。您说过“auto_mapping”是正确的,但是您是否更改了 Doctrine 配置的其他部分?

尝试显式配置东西可能是一个想法,例如如中所述Symfony Doctrine 文档, 从默认配置开始

doctrine:
    dbal:
        driver:   "%database_driver%"
        #etc

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: true

明确地

doctrine:
    dbal:
        driver:   "%database_driver%"
        #etc

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        auto_mapping: false
        mappings:
            MySuperBundleName:
                type: yml
                dir: Resources/config/doctrine
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 YAML 在 Symfony2 中进行学说映射 的相关文章

随机推荐