他のエンティティ (現時点では不明) の基本クラスとして使用したいエンティティがあり、基本エンティティに関係を格納する必要があります。
/**
* @ORM\Entity
* @ORM\Table(name="CMS_content")
*/
class BaseContent {
/**
* @ORM\ManyToOne(targetEntity="BaseContent")
* @ORM\JoinColumn(name="parent", referencedColumnName="id", unique=false)
*/
protected $parent;
/**
* @ORM\ManyToOne(targetEntity="ContentType")
* @ORM\JoinColumn(name="content_type", referencedColumnName="id", unique=false)
*/
protected $contentType;
...
};
/**
* @ORM\Entity
* @ORM\Table(name="CMS_whateverSpecializedContent")
*/
class WhateverSpecializedContent extends BaseContent {};
@ORM\InheritanceType("JOINED")
基本クラスに触れずに、後で任意の数のサブクラスを作成できるようにしたいので、使用できません。また、関係が意味を持つように、別のデータベース テーブルに基本クラスを配置する必要があります。
この種の構造を管理するには、他にどのようなオプションが必要ですか?