2016-08-26 61 views
5

Próbuję uruchomić filtry z konstruktora zapytań doktryny, używam expr eq, ale jeśli nie mam wartości filtru, chciałbym użyć jakiegoś specjalnego symbolu dla expr eq, który returs wszystkie wiersze.Wyrażenia Doctrine2 eq specjalne char pasujące do wszystkich

mój kod:

$q = $qb->select(array('p')) 
       ->from(payment::class, 'p') 
       ->innerJoin(customer::class, 'z', 'WITH', 'p.customer= z.id') 
       ->where(       
         $qb->expr()->eq('z.id', '?2') 
       ) 
       ->setMaxResults($limit) 
       ->setFirstResult($offset) 
       ->orderBy('p.'.$sortField, $sortType) 

nie chcę somting jak (-> setParameter (2, "*"))

   ->setParameter(2, $filtry['customer']) 
       ->getQuery(); 

     return $q->getResult(); 

Czy to możliwe? Nie chcę pisać innego konstruktora kwerend dla każdego filtra.

Przepraszam za mój angielski

Dzięki

Odpowiedz

3

Jest to kreator zapytań, dzięki czemu można dodać params warunkowo, jako przykład:

$qb->select(array('p')) 
       ->from(payment::class, 'p') 
       ->innerJoin(customer::class, 'z', 'WITH', 'p.customer= z.id') 
       ->setMaxResults($limit) 
       ->setFirstResult($offset) 
       ->orderBy('p.'.$sortField, $sortType) 


if ($filtry['customer']) 
{ 
$qb->andWhere(       
       $qb->expr()->eq('z.id', $filtry['customer']) 
       ) 
}; 

$q = $qb->getQuery() 

Nadzieja ta pomoc

+0

Dziękuję bardzo: -) – Hancs

+0

Witam @Hancs, zapraszam! – Matteo