Где разместить запросы Doctrine, использующие несколько сущностей в Symfony2?

0

Я написал довольно большой и сложный запрос, который внутренне использует UNION для выбора из нескольких таблиц, а затем возвращает массив объектов смешанного типа.

Я знаю, что лучшие практики Symfony говорят, что всегда ставят запросы в классы репозитория, но как я могу решить, для чего это нужно? Между ними нет отношений между родителями и дочерними элементами, эти два объекта полностью равны.

  • 1
    Вы можете сделать сервис и внедрить менеджер сущностей
  • 0
    Трудно предложить, где разместить этот запрос, не зная, что он делает (с точки зрения бизнес-логики) и как он связан с остальным кодом.
Показать ещё 3 комментария
Теги:
doctrine

1 ответ

1

Обычно я помещаю их в репозиторий, который я считаю наиболее зависимым объектом в контексте.

Например, если у меня было два объекта: " User и " Group.
Многие объекты могут иметь отношения с группой, но вы не можете ожидать, что репозиторий Group в одиночку предоставит методы, необходимые для каждой конкретной зависимости от функции.

Ответственность (сторона-владелец) несет ответственность за то, чтобы соединение и хенс обеспечивали функциональность.

Таким образом, такой метод, как getUsersInGroup(Group $group), принадлежит в UserRepository.

Однако вы сказали, что нет прямых отношений между двумя вашими сущностями.
В этом случае применяется мой первый комментарий. Используйте репозиторий, сущность которого больше зависит от другого в контексте запроса. Какой бы человек ни был, полностью зависит от вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню