結果を格納するためにmysqlでtinyintを使用するブール型のDoctrine2エンティティがあります。値を最初に追加するときに、それを null に設定できます。0 または 1 として保存すると、0 または 1 以外に渡す新しい値は 0 として保存されます。
以下は、get メソッドと set メソッドを含む変数です。var_dump を実行して、値が 0 として保存される前に null に設定されていることを確認しました。
/**
* @var string $completed
*
* @ORM\Column(name="is_completed", type="boolean", length=1, nullable=true)
* @Api(type="field")
*/
private $completed;
/**
* Set completed
*
* @param boolean $value
*/
public function setCompleted($value = null)
{
if ($value=='') {
$value = null;
}
$this->completed = $value;
}
/**
* Get completed
*
* @return boolean
*/
public function getCompleted()
{
if (is_null($this->completed)) {
$this->completed = '';
}
return $this->completed;
}