Forms 条令选择类型在表单加载时设置默认值
我使用表单类型文件中的Forms 条令选择类型在表单加载时设置默认值,forms,symfony,doctrine-orm,Forms,Symfony,Doctrine Orm,我使用表单类型文件中的buildForm()函数在Symfony CRM上创建了一个表单。此表单包括一个选项下拉列表,由简单的“是”和“否”选项组成,分别映射到1和0。我需要能够将“否”作为默认值,因为我的客户会更频繁地选择此选项而不是“是”。阅读文档后,我认为首选选项适合我的需要 这是我在buildForm()中的条目: 但是,这会将顺序显示为“是”,然后是“否”,默认选择选项为“是”。我想知道它是否将0读为null,这意味着它没有注册?有没有办法使“否”成为表单加载时的自动选择选项?您可以使
buildForm()
函数在Symfony CRM上创建了一个表单。此表单包括一个选项下拉列表,由简单的“是”和“否”选项组成,分别映射到1和0。我需要能够将“否”作为默认值,因为我的客户会更频繁地选择此选项而不是“是”。阅读文档后,我认为首选选项
适合我的需要
这是我在buildForm()
中的条目:
但是,这会将顺序显示为“是”,然后是“否”,默认选择选项为“是”。我想知道它是否将0
读为null,这意味着它没有注册?有没有办法使“否”成为表单加载时的自动选择选项?您可以使用此处提到的“数据”选项,并在此处显示
您可以使用此处提到的“数据”选项,并在此处实际显示感谢-您可以将其写下来作为答案,以便我可以选择正确的选项吗?不过,这里只是澄清一下,这是选项的值,而不是显示名称。因此,它将只在
'data'=>0
'data'=>0
覆盖任何值的情况下工作,即,即使表单字段保存为1,它也会每次使用0进行渲染
$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'
)
));
$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'
)
));