我在实体中有这个字段:
/**
* @ORM\Column(type="boolean")
*/
protected $done = 0;
在数据库中tinyint(1)
。当我尝试将其添加到表单中时:
$builder
->add('done', 'checkbox')
它会抛出错误:
Unable to transform value for property path "done": Expected a Boolean.
咦?不是布尔值吗?
答案 0 :(得分:21)
0或1不是布尔值。它们是整数。在域模型中使用true / false。
/**
* @ORM\Column(type="boolean")
*/
protected $done = false;
答案 1 :(得分:0)
非常感谢您提供解决方案,但这对我不起作用。我使用symfony4。这就是我的成就,
实体
/**
* @ORM\Column(type="boolean")
*/
protected $done = 0;
public function getDone(): ?bool
{
return $this->done;
}
public function setDone(?bool $done): self
{
$this->done = $done;
return $this;
}
FormType,
->add('done', CheckboxType::class, array(
'required' => false,
'value' => 1,
))
自从我调用类以来,我需要添加使用CheckboxType。 (使用Symfony \ Component \ Form \ Extension \ Core \ Type \ CheckboxType;) 如果您运行“ php bin /控制台准则:migrations:diff”,数据库将添加tinyint(1) 字段