У меня есть этот код Symfony, где он получает все категории, связанные с разделом блога в моем проекте:
$category = $catrep->createQueryBuilder('cc')
->Where('cc.contenttype = :type')
->setParameter('type', 'blogarticle')
->getQuery();
$categories = $category->getResult();
Это работает, но запрос содержит дубликаты:
Test Content
Business
Test Content
Я хочу использовать команду DISTINCT
в своем запросе. Единственные примеры, которые я видел, требуют, чтобы я написал сырой SQL. Я хочу как можно больше избегать этого, поскольку стараюсь сохранить весь свой код одинаковым, чтобы все они использовали функцию QueryBuilder, предоставляемую Symfony2 / Doctrine.
Я пытался добавить distinct()
к моему запросу, как это:
$category = $catrep->createQueryBuilder('cc')
->Where('cc.contenttype = :type')
->setParameter('type', 'blogarticle')
->distinct('cc.categoryid')
->getQuery();
$categories = $category->getResult();
Но это приводит к следующей ошибке:
Неустранимая ошибка: вызов неопределенного метода Doctrine \ ORM \ QueryBuilder :: Different ()
Как мне сказать Symfony выбирать разные?