如何在Symfony3表单中设置默认国家/地区?

时间:2017-04-17 18:08:48

标签: php symfony-forms country symfony-2.8

我使用的是Symfony3表单。我的Symfony表单生成器中有一个CountryType。它正常工作。但假设用户属于位于西班牙的公司。对于该用户,我想将默认国家/地区设置为西班牙,然后显示其他国家/地区。我怎么能在Symfony3中这样做。

我尝试了这个,但它不起作用。

        $builder->add("country", CountryType::class, array(
        "label" => "Country",
        "required" => false,
        "preferred_choices" => array(
            "ES" => "Spain",
        ),
    ));

感谢您的时间。

2 个答案:

答案 0 :(得分:4)

在此类型Country::class中,要使用数组上的首选选项,您应该使用:

->add('country', CountryType::class, ["preferred_choices" => array('DE'),
            'label' => 'address.form.country.label',
            'attr' => [
                'class' => 'form-control',
                'placeholder' => 'address.form.country.placeholder'
            ],
            'label_attr' => [
                'class' => 'col-sm-2 col-form-label'
            ],
        ])

答案 1 :(得分:1)

您可以使用 data 选项设置默认国家/地区。

preferred_choices 会将国家/地区置于列表顶部,但不会将它们设置为默认选择选项。

这应该是要走的路:

->add(
    'Country',
    CountryType::class,
    [
        'data'        => 'ES',
        'label'       => 'Country',
    ]
)

(使用 Symfony 4 和 5 测试)