Создать таблицу наследования и как получить суперкласс? Доктрина Symfony

У меня две сущности: действие и рождение с рождением, которое расширяет действие как это

/**
* Act
*
* @ORM\InheritanceType("JOINED")
*
* @ORM\Entity(repositoryClass = "AppBundle\Repository\ActRepository")
*/
class Act
{
   /**
   * @var int
   *
   * @ORM\Column(name = "id", type = "integer")
   * @ORM\Id
   * @ORM\GeneratedValue(strategy = "AUTO")
   */
   private $id;

   /**
   * @var string
   *
   * @ORM\Column(name = "type", type = "string", length=30, nullable=true)
   */
   private $type;
}


/**
* Birth
*
* @ORM\Table(name = "birth")
* @ORM\Entity(repositoryClass = "AppBundle\Repository\BirthRepository")
*/
class Birth extends Acte
{
   /**
   * @var int
   *
   * @ORM\Column(name = "id", type = "integer")
   * @ORM\Id
   * @ORM\GeneratedValue(strategy = "AUTO")
   */
   private $id;
}

И когда я создаю экземпляр рождения

new Birth();

Я хотел бы восстановить экземпляр его суперкласса, то есть Act Entity! Я должен назначить его другому классу (Individual) с помощью Individual-> setAct (), а не Individual-> setBirth () ...

Я не знаю, возможно ли это, но мне нужен совет по другому подходу Спасибо !

Итак, вы хотите создать экземпляр класса для чего-то, чем он не является?

LBA 12.07.2018 10:48

0 голос против принять Из экземпляра рождения, так что $ Birth = new Birth (), я хочу восстановить экземпляр Act (суперкласс рождения), чтобы $ act со стилем $ act = $ Birth-> getSuperClass () или $ Birth -> получить (суперкласс :: Акт) ...

Benjamin Le Gallo 12.07.2018 10:51

пожалуйста, прочтите это, почему я не думаю, что это возможно. и это тоже звучит как плохой дизайн.

LBA 12.07.2018 10:51

проверьте это «решение», которое пытается передать объект в родительский класс - я не предлагаю его в качестве ответа, потому что это звучит для меня слишком хакерским.

LBA 12.07.2018 11:00

Вы пробовали наследование одной таблицы от доктрины? Документация по наследству

Charlie Lucas 12.07.2018 15:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
6
186
1

Ответы 1

Просто не переопределяйте $ id в дочернем классе и объявляйте $ id в Act protected.

потом

$birth = new Birth();
if ($birth instanceof Act){
    // TRUE!
    // you could access $birth->type if it was public
}

Да, но я хотел назначить экземпляр Act сгенерировать с экземпляром Birth отдельному человеку следующим образом: $ Individual-> setAct (Act) $ act), а не $ Individual-> setActe ($ Birth)

Benjamin Le Gallo 12.07.2018 15:29

Наконец, я меняю свою модель данных!

Benjamin Le Gallo 12.07.2018 15:29

Другие вопросы по теме