我正在使用一种语言选择表:
$currentLocale = "en_US"; // This is indeed sent to the formType
$langs = array(
'fr_FR' => 'fr',
'en_US' => 'en'
);
$builder->add('language', 'language', array(
'choices' => $langs,
'expanded' => true,
'multiple' => false,
'required' => false,
'label' => false,
));
HTML代码如下所示(简化):
<div id="languageForm_language">
<input type="radio" value="fr_FR">
<input type="radio" value="en_US">
</div>
根据
$currentLocale
的值,我如何才能预先选择第二个项目? 最佳答案
在$langs
数组中,您可以指定键值对,如下所示:
array(
0 => 'value1',
1 => 'value2'
)
现在,例如要预选
value2
,可以将data
属性设置为value2
的键:$builder->add('language', 'choice', array(
'choices' => $langs,
'expanded' => true,
'multiple' => false,
'required' => false,
'label' => false,
'data' => 1
));
据此,您可以将
data
属性设置为$currentLocale
变量以进行预选择。 您的代码应如下所示:$currentLocale = "en_US"; // This is indeed sent to the formType
$langs = array(
'fr_FR' => 'fr',
'en_US' => 'en'
);
$builder->add('language', 'choice', array(
'choices' => $langs,
'expanded' => true,
'multiple' => false,
'required' => false,
'label' => false,
'data' => $currentLocale
));
注意:是
add()
方法的第二个参数,应该是choice
而不是language
。