2016-04-26 96 views
0

在Symfony 2.8中,我有一些實體具有相同的字段,但爲了數據組織的目的,我需要它們成爲獨立的實體。是否有可能創建一個包含所有字段,getter和setter的抽象基類,然後創建擴展基本抽象類的新實體,儘可能少地重複?Symfony2 - 抽象實體僅用於繼承,沒有數據庫表?

例如:
比方說,我有Movie實體,其中有一些人連接。人們有不同的角色(演員,導演),但假設他們只有名字和姓氏。我不想將它們放在一個表格(包含角色)中用於數據分離目的。
所以我想創建一個抽象Person實體,它將有FirstNameLastName,獲取者和設置者。然後,我想創建空(儘可能空)類ActorDirector,延伸Person,並讓Doctrine照顧其餘,所以在DB我應該有actor表與所有Person字段。

是否有可能實現接近我想要的東西?

+0

爲什麼不能爲每個角色創建新實體,爲什麼不能創建一個角色實體並與人物實體關聯? –

+1

我認爲你正在尋找:[官方文檔鏈接](http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html) –

回答

0

它只是看起來像基本的繼承。既然你不想堅持Person實體,但是繼承它,你可以定義你的基本實體,在你想要堅持的一切中定義Doctrine語句,但是實體本身。

然後在子實體上定義剩餘的字段,您可能想要保留它們,將它們配置爲與Doctrine一起工作,並在子實體註釋中定義要堅持該特定實體的表的實體+繼承其父原則配置。

然後,您將擁有父級和子級Doctrine配置,並且只有子級上的表配置,因此每個子級都將保留在其自己的表上。