2012-03-25 7 views
1

Ich habe Abfrage mit zwei MtM Beziehungen:Lehre 2 mehr in einer Join-Abfrage geben Sie mir Fehler

 $em = $this->getEntityManager(); 

     $qb = $em->createQueryBuilder(); 
     $qb 
      ->select('o') 
      ->from('UserBundle:User', 'o') 
      ; 

     $qb->join('o.organisations', 'org') 
      ->where('org.id = :organisation') 
      ->setParameter('organisation', $filterData['organisation']) 
     ; 
     $qb 
      ->join('o.scientificDirections', 'd') 
      ->where('d.id IN (:directionIds)') 
      ->setParameter('directionIds', $directionIds) 
      ->orderBy('o.surname') 
      ; 
     return $qb->getQuery(); 

Aber es gibt mir eine Fehlermeldung: Ungültige Parameternummer: Anzahl der gebundenen Variablen nicht Anzahl von Token entsprechen. Kann mir jemand erklären, was falsch ist? Relation in User-Modell:

/** 
* @ORM\ManyToMany(targetEntity="\StrangeBundle\Entity\ScientificDirection") 
* 
*/ 
protected $scientificDirections; 

/** 
* @ORM\ManyToMany(targetEntity="\StrangeBundle\Entity\Organisation", mappedBy="workers") 
*/ 
protected $organisations; 

Antwort

3

Ich denke, der Grund ist, weil Sie where zweimal verwendet. Das überschreibt das erste wo, weshalb es Ihnen die Parameter Anzahl Fehler gibt.

Verwenden Sie andWhere