Использование Exemple предоставленной доктрины documentationдоктрина: Класс Таблица Наследование: Добавление существующего объекта из родительской таблицы к расширенной таблице
<?php
namespace MyProject\Model;
/**
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
*/
class Person
{
// ...
}
/** @Entity */
class Employee extends Person
{
// ...
}
Если предположить, что у меня есть существующий объект Person. Я хочу продвинуть этого Человека как Сотрудника. Я не могу найти способ сделать это. Я попытался добавить отношения OneToOne и создать методы setPerson или setUser.
$employee = new Employee();
$employee->setRole('ROLE_EMPLOYEE');
$employee->setPerson($person);
ИЛИ
$employee = new Employee();
$employee->setRole('ROLE_EMPLOYEE');
$person->setEmployee($employee);
Конечно я не смог сделать эту работу и не может найти другой способ сделать это. Единственный способ, который может работать, - удалить человека объекта и создать нового сотрудника с данными предыдущего человека.
Какие-либо подсказки или решения?
я столкнулся с той же проблемой, и я решил сделать это с сырыми запросов SQL ... изменение DISCR вручную – Alsatian
@Alsatian Спасибо. Я даже об этом тоже. Хорошо, что вам это удается. Я сделаю это, ожидая другого решения, если он есть. Если вы хотите опубликовать его в качестве ответа, я буду рад его продвигать. – Brieuc