SQLSTATE[22P02]: Invalid text representation: 7
ERROR: invalid input syntax for type boolean: ""
500 Internal Server Error - PDOException
这是由Doctrine2(2.2-DEV)引起的错误消息,我担心这是再次出现的错误:http://www.doctrine-project.org/jira/browse/DDC-1394
导致此错误的查询如下:
public function getFindAllNonOthersQueryBuilder()
{
return $this
->createQueryBuilder('t')
->where('t.isOther = :isOther')
->setParameter('isOther', false);
}
字段isOther以这种方式映射:
/**
* @var boolean $isOther
*
* @ORM\Column(name="isOther", type="boolean")
*/
protected $isOther = false;
这里发生了什么?
我已经检查了postgres数据库中的类型,它也是boolean
答案 0 :(得分:6)
我做了一些谷歌搜索,因为我有同样的问题,我通过FOSMessageBundle找到了解决方案,如果你将'\ PDO :: PARAM_BOOL'添加到你的setParameter它就可以了,如下:
$qb->setParameter('isOther', false, \PDO::PARAM_BOOL);
答案 1 :(得分:4)
您必须使用Literal
表达式。它与issue #DDC-1683
我的示例代码:
$q->andWhere($q->expr()->eq('item.published', $q->expr()->literal(true)));
答案 2 :(得分:0)
我遇到了同样的问题。
解决方案:使用 0 代替 false :
...
->setParameter('isOther', 0);