【发布时间】:2013-08-30 08:29:01
【问题描述】:
我有一个布尔字段,我已将其作为选择字段(是或否)放入表单中。 如果没有数据转换器,我会得到 0 或 1。 我添加了一个视图 BooleanToStringTransformer (这似乎是合理的):
$builder
->add(
$builder->create('myBooleanField', 'choice', array(
'choices' => array(true => 'Yes', false => 'No'),
))
->addViewTransformer(new BooleanToStringTransformer('1'))
)
当我尝试显示表单时,我收到错误“Expected a Boolean.”。 在创建表单之前,我的字段设置为 false。
我尝试将其设置为模型转换器:表单已显示,但当我提交时,我的字段被声明为无效。
我做错了什么?
编辑:我现在差不多了。
- 我使用模型转换器而不是视图转换器(选择字段适用于字符串或整数,而不是布尔值)
- 我将选择列表从
array(true => 'Yes', false => 'No')更改为array('yes' => 'Yes', 'no' => 'No')
所以代码现在看起来像->addModelTransformer(new BooleanToStringTransformer('yes'))
数据转换有效,只是我的字段始终设置为 true,无论我选择什么值。
怎么了?
【问题讨论】:
标签: forms symfony symfony-forms symfony-2.3