KNPPaginator - 参数号无效:绑定变量数与令牌数不匹配(Symfony2,Doctrine)

时间:2014-04-11 20:49:52

标签: symfony doctrine-orm knppaginator

我使用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中的错误? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为您正在使用where子句。使用setParameter时,您需要使用andWhere。它应该如下所示:

$qb = $this->createQueryBuilder('c')
->addSelect('translation')
->leftJoin('c.translations', 'translation')
->andWhere('c.lvl = :lvl')
->setParameter('lvl', '1');