2017-03-03 100 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

是的,我已经测试过这样,但同样的错误 –