Не удается подсчитать запрос, который выбирает два компонента 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));

и я все еще получаю ошибку


person Akoh Victor Gutz    schedule 31.05.2016    source источник


Ответы (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();

или с выражением: $query->andWhere($query->expr()->notIn('c.id', $subquery->getDQL())); некоторая документация здесь

person jandreu    schedule 01.06.2016