我有一个使用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