在Twig中渲染一个复选框; 布尔预期错误

Lou*_*s B 0 checkbox symfony twig silex

我正在尝试在表单中呈现一个复选框,但得到了下一个错误:

Form.php第1149行中的TransformationFailedException:无法转换属性路径"[active]"的值:预期为布尔值.

是的,我发送的是一个0或1的整数,但是twig将它们作为字符串获取它有意义,但我真的找不到如何渲染复选框.

这是控制器:

    $form = $form->add('active', 'checkbox', array('label' => 'User active?','required' => false));
Run Code Online (Sandbox Code Playgroud)

这是Twig方面:

{{ form_widget(form.active, { attr: { 'class': 'form-control' }}) }}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

mbl*_*ann 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;
         }
    ));
Run Code Online (Sandbox Code Playgroud)

更多细节请访问:http://symfony.com/doc/current/cookbook/form/data_transformers.html