2015-04-12 58 views
1

我愿做这样的SF2查询生成器的请求:添加或条款中并在SF2条款的QueryBuilder

SELECT * 
FROM `annonce` a 
LEFT JOIN `ville` v ON a.ville_id=v.id 
WHERE a.titre LIKE '%s%' AND (v.cp LIKE '94%' OR v.nomComplet='alf%') 

但我不知道如何以包括AND子句OR子句。目前我有:

$qb = $this->createQueryBuilder('a') 
       ->select('a') 
       ->leftJoin('a.ville', 'v'); 
     $qb->where($qb->expr()->like('a.titre', ':titre')) 
       ->andWhere($qb->expr()->like('v.cp', ':lieu')) 
       ->OrWhere($qb->expr()->like('v.nomComplet', ':lieu')) 
       ->setParameter('titre', '%' . $item . '%') 
       ->setParameter('lieu', $lieu . '%') 
       ->getQuery() 
       ->getResult(); 

但这不是正确的实现。我需要有OrWhere IN的AndWhere

感谢您的帮助

回答

0

什么你要找的是orX condition

$qb->expr()->andWhere(
    $qb->expr()->orX(
     $qb->expr()->like('v.cp', ':lieu'), 
     $qb->expr()->like('v.nomComplet', ':lieu') 
    ) 
)