我有一個使用mysql中的tinyint來存儲結果的具有布爾類型的Doctrine2實體。在最初添加一個值時,我可以將其設置爲null。如果我保存爲0或1,則任何新值都會通過,而不是0或1保存爲0.Doctrine 2將布爾值設置爲null
下面是帶有get和set方法的變量。我已經做了的var_dump以確認該值被設置爲空保存爲0。
/**
* @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;
}
它可能不是原因,但干將應該不會有副作用(您的getter實際上在某些情況下修改的值) 。 –
你有沒有碰運氣? – timhc22
我從來沒有把它保存爲空,儘管我在這篇文章後很快實現了一項工作。對不起 – Tom