0
試圖利用繼承,我創建了以下實體:實體繼承不包括OneToOne-關係
/**
* @ORM\Table(name="persons")
* @ORM\Entity()
*/
class Person
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
protected $name;
/**
* @ORM\OneToOne(targetEntity="Image", cascade={"persist"})
* @ORM\JoinColumn(name="image_id", referencedColumnName="id")
*/
protected $image;
}
/**
* @ORM\Table(name="actors")
* @ORM\Entity()
*/
class Actor extends Person
{
/**
* @ORM\Column(name="character", type="string", length=255)
*/
private $character;
}
/**
* @ORM\Table(name="images")
* @ORM\Entity()
*/
class Image
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="path", type="string", length=255)
*/
private $path;
}
幾乎完美的作品。生成的actors
-table包含所有persons
-字段,但image
-關係除外。我試圖改變關係到ManyToOne
,這沒有幫助。
如何使Actor
-entity也繼承所有連接的字段?如果上述情況不理想,我願意接受其他解決方案。
您可以嘗試查看**表繼承**,這是學說支持的東西。看看[類表繼承](http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html#class-table-inheritance) – Artamiel