我使用表单类型文件中的buildForm()
函数在Symfony CRM上创建了一个表单。此表单包含一个选项下拉列表,包含简单的“是”和“否”选项,分别映射到1和0。我需要能够将“否”作为默认值,因为我的客户更经常会在“是”上选择此选项。阅读文档here后,我认为preferred_choices
选项符合我的需求。
以下是buildForm()
中的条目:
$builder->add('non_rider', ChoiceType::class,
array(
'label' => 'Is Non-Rider',
'required' => true,
'placeholder' => false,
'choices' => array(
'Yes' => 1,
'No' => 0
),
'preferred_choices' => array(0,1),
'label_attr' => array(
'class' => 'control-label'
),
'attr' => array(
'class' => 'form-control required'
)
));
但是,这会将订单显示为“是”,然后将“否”显示为“是”作为默认选择选项。我想知道它是否将0
读为null,这意味着它没有注册?有没有办法在表单加载时将“否”设置为自动选择选项?
答案 0 :(得分:1)
您可以使用"数据"这里提到的选项symfony.com/doc/current/reference/forms/types/choice.html,并在此处显示http://stackoverflow.com/a/35772605/2476843
$builder->add('non_rider', ChoiceType::class,
array(
'label' => 'Is Non-Rider',
'required' => true,
'placeholder' => false,
'choices' => array(
'Yes' => 1,
'No' => 0
),
'data' => 0,
'preferred_choices' => array(0,1),
'label_attr' => array(
'class' => 'control-label'
),
'attr' => array(
'class' => 'form-control required'
)
));