1
所以我有以下原則查詢:無效參數號學說
$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);
當我運行getQuery()我得到了以下異常消息:
非法參數編號:綁定變量的數不匹配的令牌數量
我甩我的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個參數對象的數組。
我真的不知道我的查詢出了什麼問題,因爲我期待我應該只綁定1個值。
謝謝。
'$ params ['rootGroup'] - > getId()'return? – LBA
整數。實體的主要ID。 – iamjc015