Почему Doctrine ORM генерирует Entities в одних случаях Unidirectional, а в других Bidirectional?

Я особо не вникал в аннотации Доктрины. Просто генерирую классы и сет/гет методы.
Есть две части БД. В обоих есть одинаковые на первый взгляд таблицы и связи 1 : N. При использовании doctrine-module orm:convert-mapping в одном модуле создаются однонаправленные связи, в другом двунаправленные.

От чего зависит такое поведение Доктрины? Какой должна быть структура БД для генерации Entities с двунаправленными связями?
  • Вопрос задан
  • 2640 просмотров
Решения вопроса 1
keltanas
@keltanas
Software Developer
Генерация сущностей носит рекомендательный характер, чтобы облегчить программисту рутинную работу.
После генерации вы должны самостоятельно исправить конфигурацию сущностей, включая все связи, в соответсвии со своими требованиями.
Надеюсь, вы знаете, чем отличается doctrine от, например, ar в yii?
Doctrine работает от схемы, описанной в конфиге сущностей, а не от схемы БД. Наоборот, схема БД генерируется на основе конфига сущностей.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Quber
@Quber
PHP Team lead
Такое поведение зависит непосредственно от того, как Вы укажите связи. Если укажите Bidirectional то будет так, если Unidirectional то так. Никакой магии.

Более подробно смотрите в документации, там всё чётко написано и разжёвано docs.doctrine-project.org/en/latest/reference/asso...
Ответ написан
Ваш ответ на вопрос

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

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