使用Symfony框架的选择类型,我们可以决定显示列表,单选按钮或复选框发挥这两个关键:
'multiple' => false,
'expanded' => true, //example for radio buttons
假设在'choices'键中以数组形式给出的不同选择的值不是字符串,而是布尔值:
$builder->add('myproperty', 'choice', array(
'choices' => array(
'Yes' => true,
'No' => false
),
'label' => 'My Property',
'required' => true,
'empty_value' => false,
'choices_as_values' => true
));
使用列表(选择)显示不同的选择没有问题,当显示表单时,列表中正确的选择被选中。
如果添加前面提到的两个键(multiple键和expanded键),用单选按钮替换列表,则字段中没有选中按钮(尽管它可以与select一起使用)。
有人知道为什么吗?
如何轻松地让它工作?
谢谢
注意:事实上,我认为它不适用于then中的任何一个,因为值是布尔值,最后变成字符串,但由于它适用于列表,我想知道为什么它不适用于其他列表。
3条答案
按热度按时间5m1hhzi41#
我添加了一个数据转换器;
它是神奇的:现在我选中了右边的单选按钮,实体中的值也正确了。
ntjbwcob2#
另一个解决方案是使用**Doctrine Lifecycle Callbacks和php类型转换**。
使用此表单类型:
实体是这样的:
azpvetkf3#
我的解决方案: