2015-04-12 102 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') 
    ) 
)