【问题标题】:Doctrine2 Criteria convert 1 to TRUEDoctrine2 Criteria 将 1 转换为 TRUE
【发布时间】: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


【解决方案1】:

尝试用Criteria::expr()->eq("actif", "1")替换Criteria::expr()->eq("actif", 1)

【讨论】:

    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 2012-01-23
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2011-11-10
    • 2016-01-12
    相关资源
    最近更新 更多