Задать вопрос
@drboboev

Как расширить класс сущности Doctrine?

Добрый день.

Дано:
Есть сущность User, расширяю её в бандле, добавляя поле. Расширяю эту же сущность в другом бандле, добавляя еще n полей.

Задача:
Как теперь добавлять запись в БД ? Ведь классы расширения не связаны между собой, а только с родителем.

Использую Single Table Inheritance
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Maksclub
@Maksclub
maksfedorov.ru
Общие данные будут храниться в таблице родителя

То есть вы добавляете в БД сущность:
  • часть (уникальные для нее) данные попадут в ее таблицу, например поле role сущности Admin (наследник User) запишется в таблицу users_admin из AdminBundle), сюда же id запишется
  • а общие для User попадут в таблицу users + в эту же таблицу в поле type запишется алиас сущности и в них айдишники будут одинаковыми


Для других сущностей все тоже самое... то есть в users обище поля хранятся с общим id и type и Доктрина сама замаппит все

Задача:
Как теперь добавлять запись в БД ? Ведь классы расширения не связаны между собой, а только с родителем.

То есть Доктрина сделает все сама -- вам нужно только DiscriminatorColumn указать (в ней и мапятся сущности), если сущности из разных бандлов называются одинаково -- стоит запилить DiscriminatorMap
Ответ написан
Ваш ответ на вопрос

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

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