доктрина 2 множественное объединение в одном запросе дает мне ошибку - PullRequest
1 голос
/ 25 марта 2012

У меня есть запрос с двумя отношениями MtM:

        $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();

Но это дает мне ошибку: Неверный номер параметра: количество связанных переменных не соответствует количеству токенов. Кто-нибудь может объяснить мне, что не так? Отношение в модели пользователя:

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

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

1 Ответ

3 голосов
/ 25 марта 2012

Я думаю, причина в том, что вы использовали where дважды.Это перезаписывает первое где, именно поэтому выдает ошибку номера параметра.

Использование andWhere

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...