2015-09-19 5 views
0

Попытки использовать наследование, я создал следующие объекты:Entity наследования в Doctrine не включает 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 содержит все поля persons, за исключением image -relation. Я попытался изменить отношение к ManyToOne, что не помогло.

Как сделать Actor -entity также наследовать все объединенные поля? Я открыт для других решений, если выше это не идеально.

+0

Вы можете попробовать изучить ** наследование таблицы **, которое поддерживает то, что поддерживает Doctrine. Взгляните на [Наследование классов] (http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html#class-table-inheritance) – Artamiel

ответ

0

Вам нужен родительский конструкт в классе Actor:

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

Он сообщил, что вы добавляете ID Aswell.

+0

Вызов родительского конструктора, к сожалению, не помог , Также явным образом не объявлял идентификатор в классе «Актер». – Zar

 Смежные вопросы

  • Нет связанных вопросов^_^