我正在Symfony2中建立一份简报订阅表。在这种形式中,这些是用户可以选择语言的字段。在这个例子中,我将其默认设置为NL。但是,我如何才能获得活动(用户在平台上选择的位置)定位值并在此处使用它?
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('email', 'text')
->add('langId', 'choice', array(
'translation_domain' => 'messages',
'choices' => array(
'NL' => 'dutch',
'EN' => 'english',
'DE' => 'german',
),
'data' => 'NL'
))
->add('save', 'submit');
}
答案 0 :(得分:0)
在您的控制器中获取变量中的区域设置。 在创建表单传递作为参数后,语言环境:
$form = $this->createForm(YourType::class, $yourEntity, ['locale' => $locale]);
在您的表单中添加默认选项' locale'具有null默认值的键:
//from Symfony v2.7
public function configureOptions(OptionsResolver $resolver){
$resolver->setDefaults(array(
'locale' => null
));
}
//or this for older versions
public function setDefaultOptions(OptionsResolverInterface $resolver){
$resolver->setDefaults(array(
'locale' => null
);
}
最后用它来定义ChoiceType的默认值:
'data' => $options['locale'],
希望这会对你有所帮助。