Я написал довольно большой и сложный запрос, который внутренне использует UNION для выбора из нескольких таблиц, а затем возвращает массив объектов смешанного типа.
Я знаю, что лучшие практики Symfony говорят, что всегда ставят запросы в классы репозитория, но как я могу решить, для чего это нужно? Между ними нет отношений между родителями и дочерними элементами, эти два объекта полностью равны.
Обычно я помещаю их в репозиторий, который я считаю наиболее зависимым объектом в контексте.
Например, если у меня было два объекта: " User
и " Group
.
Многие объекты могут иметь отношения с группой, но вы не можете ожидать, что репозиторий Group
в одиночку предоставит методы, необходимые для каждой конкретной зависимости от функции.
Ответственность (сторона-владелец) несет ответственность за то, чтобы соединение и хенс обеспечивали функциональность.
Таким образом, такой метод, как getUsersInGroup(Group $group)
, принадлежит в UserRepository
.
Однако вы сказали, что нет прямых отношений между двумя вашими сущностями.
В этом случае применяется мой первый комментарий. Используйте репозиторий, сущность которого больше зависит от другого в контексте запроса. Какой бы человек ни был, полностью зависит от вас.