[英]Doctrine2 OneToMany with multiple Entities
我有三種用戶,每個用戶都有一些FiscalData
並鏈接到UserCredential
條目。
其中翻譯為:
UserX(X = 1,2,3)有兩個FK引用
FiscalData
和UserCredential
表。
使用Doctrine2,閱讀文檔http://doctrine-orm.readthedocs.io/projects/doctrine-orm/en/latest/reference/association-mapping.html ,我認為需要MappedSuperClass模式。
我還閱讀了以下問題:
Doctrine2,Symfony2 - oneToOne有多個實體?
但在文檔中明確指出
映射的超類不能是實體,它不是可查詢的,並且由映射的超類定義的持久關系必須是單向的(僅具有擁有方)。 這意味着根本不可能在映射的超類上進行一對多關聯。 此外,只有當映射的超類目前僅在一個實體中使用時,才能實現多對多關聯。 為了進一步支持繼承,必須使用單個或連接表繼承功能。
那么,如何實現我想要實現的目標,這是UserX和FiscalData
/ UserCredential
之間的雙向關系 ? (通過Doctrine我可以獲得UserCredential並檢查它與哪個配置文件關聯)
任何完整的最小代碼示例顯示如何強制執行我正在尋找的關系 (而不僅僅是文檔中顯示的MappedSuperClass繼承將受到高度贊賞。
使用抽象實體而不是MappedSuperClass。 單表通常是要走的路,除非你確定你想要類/表。
<?php
/**
* @ORM\Entity
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({
* "mentor" = "Mentor",
* "protege" = "Protege"
* })
*/
abstract class User { ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.