Symfony2-无效的参数编号

Symfony2-无效的参数编号,symfony,doctrine-orm,Symfony,Doctrine Orm,我有一个错误: 无效参数编号:绑定变量的数量不匹配 代币数量 当我试图在我的存储库中获取getAllOrders()时: public function allOrdersQB() { return $this->createQueryBuilder('o') ->andWhere('o.state != :canceled') ->andWhere('o.state != :receipt_complete') ->

我有一个错误:

无效参数编号:绑定变量的数量不匹配 代币数量

当我试图在我的存储库中获取getAllOrders()时:

public function allOrdersQB()
{
    return $this->createQueryBuilder('o')
        ->andWhere('o.state != :canceled')
        ->andWhere('o.state != :receipt_complete')
        ->setParameters(array(
        'receipt_complete' => 'receipt_complete',
        'canceled' => 'canceled',
    ));
}

public function getAllOrders()
{
    return $this->allOrdersQB()
        ->andWhere('o.stateCorp = :stateCorp')
        ->setParameters(array(
            'stateCorp' => 0,
        ))
        ->getQuery()->getResult();
}
我不明白,因为我已经设置了所有的参数


我做错了什么

方法重置所有以前的参数,因此您可以使用简单的
setParameter
调用(参见源代码中的),例如:

public function allOrdersQB()
{
    return $this->createQueryBuilder('o')
        ->andWhere('o.state != :canceled')
        ->andWhere('o.state != :receipt_complete')
        ->setParameter('receipt_complete', 'receipt_complete')
        ->setParameter('canceled', 'canceled')
}

public function getAllOrders()
{
    return $this->allOrdersQB()
        ->andWhere('o.stateCorp = :stateCorp')
        ->setParameter('stateCorp', 0)
        ->getQuery()->getResult();
}

希望这有助于删除
中的
setParameter()
函数。只有
setParameter('cancelled','cancelled')
setPameter没问题,我只需要用另一种方法解决同样的问题