2016-11-18 84 views
1

我有這樣的錯誤:的Symfony2 - 無效參數號

Invalid parameter number: number of bound variables does not match number of tokens

當我試圖讓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(); 
} 

我不明白,因爲我已經設置了所有參數。

我做錯了什麼?

回答

2

setParameters方法重置所有以前的參數,所以你可以使用簡單setParameter調用(請參見源代碼here)爲例:

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(); 
} 

希望這有助於

+0

我已經試過了但我有同樣的錯誤! – Kevin

+0

在'setParameter()'函數中刪除':'。只有'setParameter('取消','取消')' – bobo

+0

setPameter沒問題,我只需要在另一個方法中解決同樣的問題 – Kevin