Iva*_*tch 4 yaml entity entities symfony doctrine-orm
我对Symfony2中的Doctrine的YAML配置有疑问.
我通过"doctrine:generate:entity"创建了一个实体,并选择了YAML作为映射格式.这没有在../Entity/"MyEntity".php上添加任何元数据,这将允许我更新或创建我的架构.
举个例子,如果我跑
./app/console doctrine:schema:create
Run Code Online (Sandbox Code Playgroud)
它失败了,说:
[RuntimeException]
Bundle "MySuperBundle" does not contain any mapped entities.
Run Code Online (Sandbox Code Playgroud)
我的自动化已经设置为"true".
如果我选择使用注释配置,这不会是一个问题.
我错过了什么?我还有什么额外的步骤吗?
提前谢谢,问候,
伊万
我只是很开心地看着Doctrine配置初始化代码.我发现的是:
type
值保留为falsetype
是假的配置代码看起来到默认的目录可能配置文件,并尽快找到有效扩展的文件,它决定了这是配置正在做的方式,顺序为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
Run Code Online (Sandbox Code Playgroud)
明确的
doctrine:
dbal:
driver: "%database_driver%"
#etc
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: false
mappings:
MySuperBundleName:
type: yml
dir: Resources/config/doctrine
Run Code Online (Sandbox Code Playgroud)