我使用KNPPaginatorBundle,如果我将setParameter添加到查询中,我会收到此错误消息。
我使用SF 2.4.2,doctrine 2.2.3,knp-components 1.2.5和KNP Paginator 2.4.0。
如果我使用:
$qb = $this->createQueryBuilder('c')
->addSelect('translation')
->leftJoin('c.translations', 'translation')
->where('c.lvl = 1');
工作正常。
但如果我使用:
$qb = $this->createQueryBuilder('c')
->addSelect('translation')
->leftJoin('c.translations', 'translation')
->where('c.lvl = :lvl')
->setParameter('lvl', '1');
我收到错误消息参数号无效:绑定变量数与令牌数不匹配
这是我的错误还是捆绑或Symfony中的错误? 谢谢你的帮助。
答案 0 :(得分:1)
您收到此错误是因为您正在使用where子句。使用setParameter时,您需要使用andWhere。它应该如下所示:
$qb = $this->createQueryBuilder('c')
->addSelect('translation')
->leftJoin('c.translations', 'translation')
->andWhere('c.lvl = :lvl')
->setParameter('lvl', '1');