我对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"。
如果我选择使用注释配置,这不会有问题。
我错过了什么吗?我还有什么额外的步骤吗?
提前谢谢,问候,
伊万
答案 0 :(得分:6)
我很高兴看到Doctrine配置初始化代码。我发现的是:
type
值保留为false type
为false,则配置代码会查找可能配置文件的默认目录,并且一旦找到有效扩展名的文件,它就会按顺序决定配置的完成方式xml
,yml
,php
annotation
Bundle/Resources/config/doctrine
文件夹中还有其他内容吗?如果是这样,它可能会抛弃自动检测。
除此之外,基本上如果你已经使用了默认值,并且有一些实体类和有效的配置,你正在做的事情应该没有任何额外的配置。你说“auto_mapping”是真的,但是你改变了Doctrine配置的其他部分吗?
尝试明确配置内容可能是个主意,例如:如Symfony Doctrine docs中所述,请转到默认配置
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