だから、次の教義クエリ持っている:私はgetQuery()を実行したときに無効なパラメータ番号教義
$qb = $this->createQueryBuilder('c')
->select('c','g')
->join('c.descendant', 'g');
$qb2 = $this->createQueryBuilder('c2')
->select('c2.id')
->addOrderBy('c2.ancestor', 'ASC');
if ($params['rootGroup']) {
$qb2->where('c2.ancestor = :groupId')
->setParameter('groupId', $params['rootGroup']->getId());
}
$in = $qb->expr()->in('g.id', $qb2->getDQL());
$qb->where($in);
iは次の例外メッセージが表示されましたが:
無効なパラメータ番号:バインド変数の数
:私は私のDQLをダンプし、私は次のトークンしまっ
の数と一致しません
"SELECT c, g FROM CI\GroupBundle\Entity\GroupClosure c INNER JOIN c.descendant g WHERE g.id IN(SELECT c2.id FROM CI\GroupBundle\Entity\GroupClosure c2 WHERE c2.ancestor = :groupId ORDER BY c2.ancestor ASC)"
また、$ qbと$ qb2のgetParameter()をダンプすると、$ qbの空の配列と$ qb2の1つのParameterオブジェクトの配列が得られます。
私は本当に1つだけの値をバインドする必要があると思って以来、私のクエリで何が間違っているのか分からない。
ありがとうございました。
'$ params ['rootGroup'] - > getId()' return? – LBA
整数。エンティティのプライマリID。 – iamjc015