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'
    )
));