【发布时间】:2017-07-23 07:54:14
【问题描述】:
我对 Doctrine2 中的标准有疑问。使用 Criteria 在 PostreSQL 中检查 SMALLINT 类型,如下所示:
$criteria = Criteria::create()->where(Criteria::expr()->eq("actif", 1));
return $this->c_Agenda->matching($criteria);
但是我遇到了这个错误:
整数的输入语法无效:“t”
我认为标准将 1 转换为 TRUE 并且 PostreSQL 无法识别此值。如果我将 1 更改为 0,我会遇到相同的错误,但使用 f 而不是 t。
在 PostreSQL 中,actif 类型为 SMALLINT。
你有解决这个问题的想法吗?
非常感谢
【问题讨论】:
-
作为hack,您可以尝试将
eq("actif", 1)更改为eq("actif::boolean", 1)。不是解决方案 - 只是好奇 -
我遇到了这个错误:Unrecognize field actif::boolean
-
这么想...您可以“破解”选择 0::boolean 在 postgres 中返回 false,以及所有其他正整数返回 true,但当然更好的是统一 db 中的属性类型与它教义2...
标签: php postgresql symfony doctrine-orm criteria