Обычно при запросе в пользовательском классе репозитория я использую что-то вроде этого:
SELECT * FROM BundleName:Entity
Но как мне это сделать для ассоциативной сущности?
У меня есть сущность «Билет» и сущность «Тег». Это отношение ManyToMany.
В phpMyAdmin у меня есть ассоциативная таблица ticket_tag, но как мне получить ее с помощью Doctrine?
Спасибо
У меня есть геттеры с обеих сторон, но я хочу сделать больше. Допустим, я хочу получить количество билетов для каждого тега. Я не хочу зацикливаться на ВСЕХ билетах (ticket-> getTags ()). Если у моего пользователя есть 10к билетов, например.
Мой рабочий SQL следующий: SELECT tag.id, tag.name, count (tt.ticket_id) FROM ticket_tag tt, savBundle: Tag tag WHERE tag.id = tt.tag_id GROUP BY tag.id, tag.name. Так что в идеале я хотел бы знать, как получить мою таблицу ticket_tag с доктриной
Получение значения масштабирования - это совершенно другой вопрос. Возможно, вам нужно быть более конкретным и, возможно, посетить раздел dql документации.
В stackoverflow.com/questions/9214471/… мы используем объект пакета из symfony, но я хочу использовать таблицу, которая НЕ является объектом в моем проекте symfony. Я не могу просто использовать BundleName: EntityName
Понятия не имею, о чем вы просите. Используйте sql, если вам нужно получить данные из несопоставленной таблицы. Но я не понимаю, как можно иметь ассоциативную сущность, которая не является сущностью. Другими словами, обновите свой вопрос своим актуальным вопросом, и, возможно, кто-то сможет помочь.




Вы должны использовать createQueryBuilder для обработки требований вашего пользовательского запроса, если у вас есть допустимые отношения по сущностям. Например:
Внутри репозитория билетов вы должны обращаться вот так, если вы хотите выполнить больше операций, вы должны узнать больше здесь: https://symfony.com/doc/3.3/doctrine/repository.html
$query = $this->createQueryBuilder('t')
->select('count(t.id) as total_ticket, tag.id as tagId')
->leftJoin('t.tags', 'tag')
->groupBy('tag.id')
;
return $query->getQuery()->getResult();
чтобы увидеть / узнать больше подходящих методов, связанных с createQueryBuilder, пожалуйста, посмотрите здесь doctrine-project.org/projects/doctrine-orm/en/2.6/reference/…
Как вы строили свои отношения в доктрине? Если это настоящий ManyToMany, зачем вам эти ассоциативные объекты? У вас должны быть геттеры с обеих сторон для получения связанных объектов или использовать DQL-запрос для получения любого из них по определенным условиям.