У меня есть 2 класса в одной таблице: Journal и Conference, сопоставленные с их одним и тем же родительским Periodic.
Код: Выделить всё
/**
* @ODM\Document(collection="periodics")
* @ODM\InheritanceType("SINGLE_COLLECTION")
* @ODM\DiscriminatorField("periodic_type")
* @ODM\DiscriminatorMap({
"journal"=Bundle\Document\Journal::class,
"conference"=Bundle\Document\Conference::class,
})
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
*/
class Periodic {
...
}
/**
* @ODM\Document()
*/
class Conference extends Periodic {
...
}
/**
* @ODM\Document()
*/
class Journal extends Periodic {
...
}
Код: Выделить всё
class Assembly{
/**
* @ODM\ReferenceOne(
* targetDocument=Periodic::class,
* nullable=true
* )
*/
protected $periodic;
/**
* @return mixed
*/
public function getPeriodic()
{
return $this->periodic;
}
/**
* @param mixed $periodic
* @return $this
*/
public function setPeriodic($periodic)
{
$this->periodic = $periodic;
return $this;
}
}
Другими словами, я получаю суперкласс, а не дочерние классы. Как это исправить?
Обновление: я буду использовать ту же версию Symfony 3 и doctine1.3
Подробнее здесь: https://stackoverflow.com/questions/797 ... superclass
Мобильная версия