'Filter with a function count()

I try to filter with a count() but I have a problem in my display.

I get this error:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sclr_0' in 'where clause'

Thanks a lot for your help

My request is :

public function findAllVisibleQuery(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();

}

controller :

       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->findAllVisibleQuery($filter);

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


Solution 1:[1]

Add required fields of joined entity instead of below code:

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

use like

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

and use also

->getSingleScalarResult();

instead of

->getResult();

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mitesh Vasava