2011-10-26 166 views
3

I'm与Symfony2的工作,我需要执行这个SQL例如:createQueryBuilder IN子句

 select detformacion.* from detformacion 
     left join formacion 
     on detformacion.formacion_id = formacion.id 
     left join detcurso 
     on formacion.id = detcurso.formacion_id 
     where detcurso.id IN ('143','144'); 

对于这一点,我有这个在我的仓库:

公众功能getSeleccion(){

$em = $this->getEntityManager(); 

    $query = $em->createQueryBuilder() 
       ->select('d') 
      ->from('GitekUdaBundle:Detformacion', 'd') 
      ->leftJoin('d.formacion', 'f') 
       ->leftJoin('f.detcursos', 'det') 
       ->where('det.id = :miarray') 
       ->setParameter('miarray',array('143','144')) 
      ->getQuery() 
      ; 
     return $query->getResult(); 
    } 

我尝试过 - > where('det.id IN:miarray'),但我总是得到错误。

任何帮助或线索?

在此先感谢。

更新:问题是设置参数。 IN操作符后

回答

17

缺少括号:

->where('det.id IN (:miarray)') 
->setParameter('miarray', array('143','144'))