Я хочу использовать QueryBuilder Doctrine для получения категорий с указанным атрибутом и минимальным количеством продуктов внутри. Я уверен, что впервые использую эту функцию Doctrine. Я обнаружил это и понял, что это намного мощнее, чем базовые функции репозиториев. Я очень новичок с SQL, потому что раньше я использовал функции репозитория.
Но я думаю, что добился этого в чистом виде SQL:
SELECT category.*,COUNT(*)
FROM category_product
INNER JOIN category ON category_product.category_id = category.id
WHERE category.name = 'region'
GROUP BY category_product.category_id HAVING COUNT(*) > 20
На данный момент я ' m полностью потеряно с построением DQL. Мои сущности категории и продукта имеют отношение "многие ко многим", и я не могу связать это с Doctrine. Я пробовал использовать таблицу category_product, автоматически созданную doctrine, но она не хочет получать доступ к этой таблице ...
$qb = $this->createQueryBuilder('c');
$qb
->select('c')
->where("c.name = 'region'")
->innerJoin('c.products', 'p', 'WITH', 'COUNT(c.products) > :minimum')
->setParameter('minimum', $minimum);
dump($qb->getQuery(), $qb->getQuery()->getResult());
Каждый раз, когда я использую новую конструкцию, у меня возникают семантические ошибки I ' м не могу исправить ...
Большое спасибо за вашу помощь