У меня две сущности: действие и рождение с рождением, которое расширяет действие как это
/**
* 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 () ...
Я не знаю, возможно ли это, но мне нужен совет по другому подходу Спасибо !
0 голос против принять Из экземпляра рождения, так что $ Birth = new Birth (), я хочу восстановить экземпляр Act (суперкласс рождения), чтобы $ act со стилем $ act = $ Birth-> getSuperClass () или $ Birth -> получить (суперкласс :: Акт) ...
пожалуйста, прочтите это, почему я не думаю, что это возможно. и это тоже звучит как плохой дизайн.
проверьте это «решение», которое пытается передать объект в родительский класс - я не предлагаю его в качестве ответа, потому что это звучит для меня слишком хакерским.
Возможный дубликат Приведение типов для определенных пользователем объектов
Вы пробовали наследование одной таблицы от доктрины? Документация по наследству




Просто не переопределяйте $ 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)
Наконец, я меняю свою модель данных!
Итак, вы хотите создать экземпляр класса для чего-то, чем он не является?