Невозможно сосчитать запрос, который выбирает два компонента FROM, не может сделать различие, когда я пытаюсь разорвать свой запрос, чтобы добавить условное выражение Symfony 2 .8
Пожалуйста, помогите мне получить эту ошибку
Невозможно сосчитать запрос, который выбирает два компонента FROM, не может сделать различие, когда я пытаюсь разорвать свой запрос, чтобы добавить условный оператор
я прочитал этот KnpPaginatorBundle/Resources/doc/manual_counting.md и пришел к этому
public function findCategoryProduct($category,$minPrice=null,$maxPrice=null,$gender=null)
{
$countgb = $this->createQueryBuilder('1')
->select('count(p)')
->from('AppBundle:Product','p')
->join('p.group', 'g')
->join('g.category', 'c')
->where('c = :category')
->andWhere('p.visible >= :true')
->setParameter('category', $category)
->setParameter('true', 1);
$count = $countgb->getQuery()->getSingleScalarResult();
$query = $this->createQueryBuilder('1')
->select('p')
->from('AppBundle:Product','p')
->join('p.group', 'g')
->join('g.category', 'c')
->where('c = :category')
->andWhere('p.visible >= :true')
->setParameter('category', $category)
->setParameter('true', 1);
$query ->getQuery()
->setHint('knp_paginator.count', $count);
return $query;
}
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate($query,$request->query->getInt('page', 1),10,array('distinct' => false));
и я все еще получаю ошибку
1 ответ
Привет, я советую вам использовать подзапрос, как:
$query = $em->createQuery('SELECT u.id FROM CmsUser u WHERE EXISTS (SELECT p.phonenumber FROM CmsPhonenumber p WHERE p.user = u.id)');
$ids = $query->getResult();
или с expr: $query->andWhere($query->expr()->notIn('c.id', $subquery->getDQL()));
некоторая документация здесь