我有一个具有以下属性的类:
/**
* @var boolean
*
* @ORM\Column(name="validated", type="boolean", nullable=true)
*/
private $validated;
我希望它在数据库中默认为null但是无论我做什么,当它插入为NULL时我都会得到一个FALSE值。
有人知道如何实现这个目标吗?
答案 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。