我正在尝试在表单中呈现一个复选框但是出现了下一个错误:
Form.php第1149行中的TransformationFailedException:无法执行 转换属性路径的值“[active]”:预期为布尔值。
是的,我发送的是0或1的整数,但是twig将它们作为字符串获取并且它有意义但我真的找不到如何呈现复选框。
这是控制器:
$form = $form->add('active', 'checkbox', array('label' => 'User active?','required' => false));
这就是Twig方面:
{{ form_widget(form.active, { attr: { 'class': 'form-control' }}) }}
有什么想法吗?
答案 0 :(得分:6)
在表单中添加模型转换器为@Rinat建议:
$form->add('active', 'checkbox', array('label' => 'User active?','required' => false));
$form->get('active')
->addModelTransformer(new CallbackTransformer(
function ($activeAsString) {
// transform the string to boolean
return (bool)(int)$activeAsString;
},
function ($activeAsBoolean) {
// transform the boolean to string
return (string)(int)$activeAsBoolean;
}
));
此处有更多详情:http://symfony.com/doc/current/cookbook/form/data_transformers.html
答案 1 :(得分:0)
你应该添加
/**
* @ORM\Column(type="boolean")
*/
protected $active = false;
到您的域名模型。