Symfony 2.0中PostGres的Nullable布尔值

时间:2015-06-03 18:28:09

标签: php postgresql symfony

我有一个具有以下属性的类:

/**
* @var boolean
*
* @ORM\Column(name="validated", type="boolean", nullable=true)
*/
private $validated;

我希望它在数据库中默认为null但是无论我做什么,当它插入为NULL时我都会得到一个FALSE值。

有人知道如何实现这个目标吗?

2 个答案:

答案 0 :(得分:0)

默认值来自您的实体,因此应该这样做

private $validated = null;

答案 1 :(得分:0)

从未使用过postgre,但似乎有一个函数为null值返回false(convertSingleBooleanValue),如下所示:

private function convertSingleBooleanValue($value, $callback)
    {
        if (null === $value) {
            return $callback(false);
        }

        if (is_bool($value) || is_numeric($value)) {
            return $callback($value ? true : false);
        }

        if (!is_string($value)) {
            return $callback(true);
        }

        //etc...
    }

https://github.com/doctrine/dbal/pull/625

因此,这很可能是您的问题,您应该检查是否有办法绕过这个问题。

对于postgresql http://www.postgresql.org/docs/8.1/static/datatype-boolean.html,仍有一个“未知”值为null。