Forms 在表单类型选择上选中Symfony集合值
我使用带有Symfony的FormBuilder创建表单,如下所示:Forms 在表单类型选择上选中Symfony集合值,forms,symfony,Forms,Symfony,我使用带有Symfony的FormBuilder创建表单,如下所示: $builder ->add('timeBarOpen', 'time', array('label' => 'Ouverture Bar', 'attr' => array('class' => 'form-control'))) ->add('timeBarClose', 'time', array('label' => 'Fermetur
$builder
->add('timeBarOpen', 'time', array('label' => 'Ouverture Bar', 'attr' => array('class' => 'form-control')))
->add('timeBarClose', 'time', array('label' => 'Fermeture Bar', 'attr' => array('class' => 'form-control')))
->add('timeStartHappyHour', 'time', array('label' => 'Début Happy Hour *', 'attr' => array('class' => 'form-control')))
->add('timeEndHappyHour', 'time', array('label' => 'Fin Happy Hour *', 'attr' => array('class' => 'form-control')))
->add('day', 'choice', [
'choices' => $days,
'multiple' => true,
'expanded' => true,
'label' => 'Jour(s) *',
])
;
$days是一个数组:
$days = array(
'Monday' => 'Lundi',
'Tuesday' => 'Mardi',
'Wednesday' => 'Mercredi',
'Thursday' => 'Jeudi',
'Friday' => 'Vendredi',
'Saturday' => 'Samedi',
'Sunday' => 'Dimanche',
);
因此,这个字段类型“choice”会生成多个复选框,我需要在创建表单时由defaut将它们全部选中
如何操作?您可以使用数据参数指定一些默认选项,在您的情况下,指定一个数组,并使用可用选项的键
$builder
->add('day', 'choice', [
'choices' => $days,
'multiple' => true,
'expanded' => true,
'label' => 'Jour(s) *',
'data' => array_keys($days)
])
;
我在ChoiceType下拉列表中遇到了类似的问题,我希望能够在其中设置所选的值,但我不知道如何做到这一点。我从@ThomasPiard的答案中找到了答案。谢谢大家! 在我的示例中,我设置了“选项”,“数据”设置为数组的值(而不是键)。这一点很重要——因为我一开始不明白为什么它不起作用 这是我的样本:
->add('pet_type', ChoiceType::class, array( // Select Pet Type.
'choices' => array(
'Substitution' => 'sub',
'Equivalency' => 'equiv',
),
'label' => 'Select Petition Type:',
'attr' => array(
'onchange' => 'changedPetType()',
),
'placeholder' => 'Choose an option',
'data' => 'equiv',
))
希望它能帮助有同样问题的人。更多信息,请参阅doc:directive,power!;-)好的,值得一提的是,它只在new和edit操作有一个单独的FormType时工作,否则在edit form中它将覆盖DB值