4
    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あまりにも

4

3 に答える 3

6

私は同じ問題を抱えているので、さらにグーグルを行い、FOSMessageBundleを介して解決策を見つけました。 setParameter に '\PDO::PARAM_BOOL' を追加すると、次のように機能します。

$qb->setParameter('isOther', false, \PDO::PARAM_BOOL);
于 2013-04-03T11:44:07.583 に答える
6

Literal表現を使わなければなりません。問題 #DDC-1683に関連しています

私のサンプルコード:

$q->andWhere($q->expr()->eq('item.published', $q->expr()->literal(true)));
于 2013-04-17T20:52:14.263 に答える
3

私も同じ問題を抱えていました。

解決策: falseの代わりに0を使用します。

...
->setParameter('isOther', 0);
于 2012-07-10T19:04:49.747 に答える