我想扩展Entity \ Base类,如何在Doctrine 2.1中做到这一点?我的研究表明,每当有人遇到这样的问题,他切换到Doctrine 1.2:)n我使用yaml配置学说:扩展实体类
Q
学说:扩展实体类
10
A
回答
16
原则2.X实体作为POPO(Plain Old PHP Objects)工作。 为了实现正确的扩展,Doctrine强制您使用来自JPA的称为Mapped Super Classes的概念。 这个想法很简单。无论何时你想拥有一个基类并希望你的实体扩展它(我不是在谈DB级别的继承),只需要将你的Base类创建为MappedSuperClass即可。
由于
2
在这里从吉尔赫尔梅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
}
相关问题
- 1. 扩展学说2个实体
- 2. 在symfony中扩展/自定义一个学说的实体库
- 3. 非实体类扩展实体
- 4. 扩展实体框架类
- 5. 如何扩展实体类?
- 6. 学说坚持php类继承学说实体
- 7. 学说目标实体抽象类
- 8. 学说实体“未找到类”
- 9. Symfony2学说形式 - 实体类型
- 10. 扩展实体
- 11. 扩展实体
- 12. 学说2.1 - 整个实体
- 13. 学说2.1 - 实体插入
- 14. 学说实体....历史?
- 15. 学说实体发生器
- 16. 学说2实体水化
- 17. 学说2从实体
- 18. 学说连接实体
- 19. 扩展功能与学说ORM注释
- 20. 学说如何扩展自定义存储库并从教义实体管理器调用扩展存储库
- 21. 扩展SonataUserBundle实体
- 22. 如何扩展一个dbcontext实体类?
- 23. 实体框架5 - 扩展的DbContext类
- 24. 无法扩展映射的类:实体
- 25. 扩展一个实体框架6类
- 26. JPA:实体与实体的扩展
- 27. Symfony2 - 扩展实体,抽象实体
- 28. 学说ORM实体类名称返回代理类名称
- 29. symfony2 - 扩展基础实体类还是保持实体无关?
- 30. 在单个实体类型上扩展实体框架保存
为什么要扩展它? – jere
我想创建一个扩展基类的新类,例如User extends UserBase。其实现在所有的基类是在实体/基础,所以我想在实体创建新类,它们将扩展实体/基类 – mkk
@jaro我想从学说1.2我有基类和普通类遵循的模式,我扩展基类以便能够编写我自己的自定义方法。问题是基类是自动生成的,我不希望每次更改模型中的某些内容时都会丢失代码。 – mkk