我有一个布尔字段,我把它作为一个选择字段放在一个表单中(是或否).没有数据转换器,我会得到0或1.我添加了一个视图BooleanToStringTransformer(看起来合理):
$builder
->add(
$builder->create('myBooleanField', 'choice', array(
'choices' => array(true => 'Yes', false => 'No'),
))
->addViewTransformer(new BooleanToStringTransformer('1'))
)
Run Code Online (Sandbox Code Playgroud)
当我尝试显示表单时,我收到错误"Expected a Boolean.".在创建表单之前,我的字段设置为false.
我试图将它设置为模型转换器:表单被调度,但是当我提交它时,我的字段被声明为无效.
我究竟做错了什么?
编辑:我差不多了.
array(true => 'Yes', false => 'No')为array('yes' => 'Yes', 'no' => 'No')所以代码现在看起来像 ->addModelTransformer(new BooleanToStringTransformer('yes'))
数据转换工作,除了我的字段始终设置为true,无论我选择什么值.
怎么了?