2017-03-03 72 views
0

我從Doctrine2的Criteria中遇到問題。 Iusing標準來檢查這樣的PostreSQL一個SMALLINT類型:Doctrine2 Criteria convert 1 to TRUE

$criteria = Criteria::create()->where(Criteria::expr()->eq("actif", 1)); 
return $this->c_Agenda->matching($criteria); 

但我得到這個錯誤:

整數

無效的輸入語法: 「T」

我猜想條件將TRUE中的1轉換爲1,並且PostreSQL不會識別此值。如果我將1改爲0,我得到的錯誤是f,而不是t。

在PostreSQL中,actif類型是SMALLINT。

你有解決這個問題的想法嗎?

非常感謝

+0

更換Criteria::expr()->eq("actif", 1)作爲破解你可以嘗試改變'EQ( 「ACTIF」,1)''到EQ( 「ACTIF ::布爾」,1)' 。不是一個解決方案 - 只是好奇 –

+0

我有這個錯誤:無法識別字段actif ::布爾 –

+0

這麼想......你可以「破解」選擇0 ::布爾值在postgres中返回false,所有其他正整數返回true ,但當然更好的統一屬性類型在DB與它在Doctrine2 ... –

回答

0

嘗試Criteria::expr()->eq("actif", "1")

+0

是的,我已經測試過這樣,但同樣的錯誤 –