Фильтр с функцией count () - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь отфильтровать с помощью count (), но у меня есть проблема
на моем дисплее,

У меня есть эта ошибка, которая возникает из моего запроса

SQLSTATE [42S22]:Столбец не найден: 1054 Неизвестный столбец 'sclr_0' в 'where clause'

Большое спасибо за вашу помощь

Мой запрос:

public function findAllVisibleQeury(FilterUser $filter)
{

    $query= $this->createQueryBuilder('u')
    ->leftJoin('u.commandes', 'cmd')
    ->leftJoin('u.zoneLivraison', 'zone')
    ->addSelect('cmd')
    ->addSelect('zone')
    ->Select(' COUNT(cmd.id) as nbCmd')
    ->GroupBy('u');


    if(!is_null($filter->getDateDebut()) && !is_null($filter->getDateFin()) && $filter->getDateFin() > $filter->getDateDebut()){
        $query=$query->Where('cmd.dateCommande BETWEEN :dateDebut AND :dateFin')
                     ->setParameter('dateDebut', $filter->getDateDebut())
                     ->setParameter('dateFin', $filter->getDateFin());

    }elseif (!is_null ($filter->getModePaiement())){
        $query=$query->andWhere('cmd.modePaiement = :modePaiement')
            ->setParameter('modePaiement', $filter->getModePaiement());

    }elseif (!is_null($filter->getZoneLivraison())){
        $query=$query->andWhere('zone.nom = :nom')
            ->setParameter('nom', $filter->getZoneLivraison());


   }elseif (!is_null($filter->getNbCommande())){
    $query=$query->andWhere('nbCmd < = :nbCmd')

    ->setParameter('nbCmd', $filter->getNbCommande());

    }

   return $query
       ->getQuery()
       ->getResult();

}

Контроллер:

       public function listAction(Request $request)
       {

    $filter = new FilterUser();
    $form = $this->createForm(FilterUserType::class, $filter);
    $form->handleRequest($request);
    $users = $this
            ->getDoctrine()
            ->getManager()
            ->getRepository('CeUtilisateurBundle:User');
            $listUsers= $users->findAllVisibleQeury($filter);

            return $this->render('CeUtilisateurBundle:Utilisateur:list.html.twig', array(
        'form' => $form->createView(),
        'listUsers' => $listUsers,
    ));
}

1 Ответ

0 голосов
/ 16 апреля 2019

Добавьте обязательные поля объединенной сущности вместо приведенного ниже кода:

  ->addSelect('cmd')
  ->addSelect('zone')

используйте как

->addSelect('cmd.id')
->addSelect('zone.id')

и используйте также

->getSingleScalarResult();

вместо

->getResult();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...