@romteh

Doctrine наследование сущностей от сущности?

Здравствуйте. Есть сущность User от нее наследуются сущности Person и Employee, а от Person PersonTypeA, PersonTypeB, PersonTypeC. Т. е. по сути Person, Employee, PersonTypeA, PersonTypeB и PersonTypeC расширяют таблицу User. А на деле получается что к примеру при сохранении сущности PersonTypeA добавляется запись в таблицу "persontypea", "person" и "user". А мне необходимо чтоб запись добавлялась в таблицу "persontypea" и "user". но мне нужны методы someMethodA, someMethodИ которые используются в Person, PersonTypeA, PersonTypeB, PersonTypeC.

Можно ли как то сказать Doctrine что мне нужно унаследовать только методы? Или может как то по другому лучше сделать?

/**
 * @Entity
 * @DiscriminatorColumn(name="discr", type="string")
 * @DiscriminatorMap({
 * "person" = "Person"
 * "persontypea" = "PersonTypeA",
 * "persontypeb" = "PersonTypeB",
 * "persontypec" = "PersonTypeC",
 * "employee" = "Employee"
 * })
 */
abstract class User {

}

/**
 * @Entity
 **/
class Person extends User {
    public function someMethodA() {}

    public function someMethodB() {}
}

/**
 * @Entity
 **/
class PersonTypeA extends Person {

}

/**
 * @Entity
 **/
class PersonTypeB extends Person {

}

/**
 * @Entity
 **/
class PersonTypeC extends Person {

}
/**
 * @Entity
 **/
class Employee extends User {
    
}
  • Вопрос задан
  • 1385 просмотров
Решения вопроса 1
@antonowano
Профессиональный самоучка
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы