2 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
為什么不讓你的基礎(chǔ)實(shí)體產(chǎn)品變得抽象呢?那么你所有的其他產(chǎn)品都可以擴(kuò)展它嗎?
抽象的:
/**
* @ORM\Entity(repositoryClass=ProductRepository::class)
*/
abstract class Product
{
產(chǎn)品1:
/**
* @ORM\Entity(repositoryClass=Product1Repository::class)
*/
class Product1 extends Product
{

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以從 Doctrine 文檔中檢查類表繼承。
基本上,您使用子實(shí)體共有的所有字段創(chuàng)建基本實(shí)體,然后創(chuàng)建一個(gè)鑒別器列并映射該列可以具有的值,這些值將映射到您的子實(shí)體。
<?php
namespace MyProject\Model;
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
*/
class Person
{
? ? // ...
}
/** @Entity */
class Employee extends Person
{
? ? // ...
}
通過這種方式,您將擁有一個(gè) Person 表,其中包含名為“discr”的列以及您聲明的所有其他字段;和一個(gè)名為 Employee 的表,其中 Person.id 作為主鍵,Person 的外鍵,加上您在“Employee”實(shí)體中聲明的所有字段。
- 2 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報(bào)