无效的参数编号学说



所以我有以下学说查询:

    $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 CIGroupBundleEntityGroupClosure c INNER JOIN c.descendant g WHERE g.id IN(SELECT c2.id FROM CIGroupBundleEntityGroupClosure c2 WHERE c2.ancestor = :groupId ORDER BY c2.ancestor ASC)"

我还将$ qb和$ qb2的getParameter()转储为$ qb的空数组,一个带有1个参数对象的数组在$ qb2上。

我真的不知道我的查询怎么了,因为我期望我只绑定1个值。

谢谢。

->setParameter('groupId', $params['rootGroup']->getId())将其移至$ qb。getDQL()返回带有参数名称的DQL,而不是值。

相关内容

  • 没有找到相关文章

最新更新