0

如果我将 a 添加到查询中,我会使用KNPPaginatorBundle并收到此错误消息。setParameter

我使用 Symfony 2.4.2、教义 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');

我收到此错误消息

无效的参数编号:绑定变量的数量与标记的数量不匹配。

这是我在 bundle 或 Symfony 中的错误或错误吗?谢谢你的帮助。

4

1 回答 1

1

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

$qb = $this->createQueryBuilder('c')
->addSelect('translation')
->leftJoin('c.translations', 'translation')
->andWhere('c.lvl = :lvl')
->setParameter('lvl', '1');
于 2015-01-05T21:40:53.407 回答