在我基于Symfony 2 + Doctrine 2的项目中,我使用以下方法实现模型(基于FOSUserBundle源代码):
重要:我希望STI的持久性(实体)类从模型扩展各自的类,而不是从实体扩展。
问题:
#Resources/config/doctrine/ContentElement.orm.yml
My\CoreBundle\Entity\ContentElement:
type: entity
table: content_element
inheritanceType: SINGLE_TABLE
discriminatorColumn:
name: discr
type: string
length: 255
discriminatorMap:
contentElement: ContentElementList
htmlContentElement: HtmlContentElement
id:
id:
type: integer
generator: { strategy: AUTO }
fields:
anchor_id:
type: string
anchor_text:
type: string
#Resources/config/doctrine/HtmlContentElement.orm.yml
My\CoreBundle\Entity\HtmlContentElement:
type: entity
fields:
html:
type: text
当我尝试更新数据库时,我从YAML驱动程序中得到错误,直到我另外指定'id'(应该按照我的想法继承)
为id添加映射后,我有sql查询,其中我看到每个实体有2个单独的表。
我怀疑这是因为HtmlContentElement扩展了Model \ HtmlContentElement而不是Entity \ ContentElement。
我是对的,我的问题有解决方案吗?