Для моего проекта я пытаюсь использовать функцию наследования Doctrine. Мне нужно представлять медиумы (через разные таблицы: одна таблица для загруженных документов, одна для связанных видеороликов и т. Д.).Множественный уровень разного рода наследования
Но видео может варьироваться от поставщика к провайдеру (например, Youtube, Dailymotion, вы называете его). Итак, я думал о другом наследовании, соответствующем таблице видео, через наследование SINGLE_TABLE
.
Но, когда я объявляю мои сущности, мне кажется, что если я добавить SINGLE_TABLE
наследования аннотации на AbstractVideo
субъекте, который расширяет AbstractMedia
сущности, Video
таблицы не создается (и не обнаружена). Вот отрывок из этих двух сущностей:
<?php
namespace Acme\Demo\Entity;
use Datetime;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="Media")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
*/
abstract class AbstractMedia
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
// some other fields
}
/**
* @ORM\Entity
* @ORM\Table(name="Video")
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="provider", type="string")
* @ORM\DiscriminatorMap({})
*/
abstract class AbstractVideo extends AbstractMedia
{
/** @ORM\Column(type="string") */
private $name;
// some other fields
}
Я уже пытался иметь отображенный объект к Foo
сущности, расширяя AbstractVideo
, но потом, когда я пытаюсь оставаться что-то, он говорит, что это не является допустимым организация.
Любые идеи, или я должен избегать такого глубокого наследования? Спасибо
Смешанное наследование в настоящее время не поддерживается Doctrine ORM – Ocramius