Gui*_*nco 20
Doctrine 2.X实体作为POPO(普通的旧PHP对象)工作.为了实现正确扩展,Doctrine强制您使用JPA中的一个名为Mapped Super Classes的概念.这个想法非常简单.每当你想拥有一个基类并希望你的实体从它扩展时(我不是在谈论数据库级别的继承),你需要做的就是将你的Base类创建为MappedSuperClass.
这是一个例子:http://www.doctrine-project.org/docs/orm/2.1/en/reference/inheritance-mapping.html#mapped-superclasses
谢谢
这里是Guilherme Blanco的解决方案.我希望有一个发布的解决方案,而不是一个最终将来不再有用的链接:
<?php
/** @MappedSuperclass */
class MappedSuperclassBase
{
/** @Column(type="integer") */
protected $mapped1;
/** @Column(type="string") */
protected $mapped2;
/**
* @OneToOne(targetEntity="MappedSuperclassRelated1")
* @JoinColumn(name="related1_id", referencedColumnName="id")
*/
protected $mappedRelated1;
// ... more fields and methods
}
/** @Entity */
class EntitySubClass extends MappedSuperclassBase
{
/** @Id @Column(type="integer") */
private $id;
/** @Column(type="string") */
private $name;
// ... more fields and methods
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18770 次 |
| 最近记录: |