symfony boolean field into form

时间:2015-10-19 08:35:14

标签: php symfony

我在实体中有这个字段:

/**
* @ORM\Column(type="boolean")
*/
protected $done = 0;

在数据库中tinyint(1)。当我尝试将其添加到表单中时:

$builder
   ->add('done', 'checkbox')

它会抛出错误:

Unable to transform value for property path "done": Expected a Boolean.

咦?不是布尔值吗?

2 个答案:

答案 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) 字段