Doctrine中的实体继承并不包含OneToOne关系

时间:2015-09-19 18:35:26

标签: symfony inheritance doctrine-orm

尝试利用继承,我创建了以下实体:

li

几乎完美无缺。生成的key - 表包含除li - 关系之外的所有id - 字段。我试图将关系更改为/** * @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 - 实体也继承所有已连接的字段?如果上述情况不理想,我会对其他解决方案持开放态度。

1 个答案:

答案 0 :(得分:0)

您需要在Actor类中使用父构造:

public function __construct()
    {
        parent::__construct();
        // your own logic
    }

建议您添加ID。