我想擴展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