Только что натолкнулся на похожую ошибку в Symfony2:
Моя сущность:
/**
* @ORM\Column(type="boolean")
*/
protected $Valid;
Моя форма:
$builder->add('Valid', 'hidden');
Теперь для истинных значений поле отображается правильно со значением = "1", но для ложных значений поле отображается со значением = "", что приводит к:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'Valid' cannot be null
Хотя я ожидаю, что оно будет отображено как значение = "0".
Конечно, метод setValid () может быть улучшен для установки правильного значения:
public function setValid($valid)
{
$this->Valid = ($valid ? true : false);
}
Который обходит проблему, а не исправляет ее.