我试图通过使用ChoiceType
向我的表单(Symfony表单,使用Symfony 4)添加多个复选框。但是,在加载页面时,默认情况下会选中每个复选框,这是我不希望的。
在呈现表单并使用$options
发送表单之前,这些选择已收集在控制器中,如下所示:
$choices = $tableRepository->getChoices();
$form = $this->createForm(FormType::class, [
'choices' => $choices,
]);
以下是$choices
的实际部分:
array(884) {
[111]=>
string(7) "sbi111"
[113]=>
string(7) "sbi113"
然后采用以下格式:
->add('names', ChoiceType::class, [
'label' => 'Choose: ',
'multiple' => true,
'expanded' => true,
'choices' => $options['data']['choices'],
'required' => false,
])
就像我说的那样,这会返回选项,但所有选项都带有checked="checked"
属性。而最奇怪的部分是当我直接在表单内部声明数组时,所以
->add('names', ChoiceType::class, [
'label' => 'Choose: ',
'multiple' => true,
'expanded' => true,
'choices' => [
'choice1' => 'value1',
'choice2' => 'value2',
],
'required' => false,
])
然后它可以正常工作吗?所以我的猜测是问题在于在$options
内部传递数据,但是我不确定该怎么做并且没有找到一个有相同问题的人,所以如果有人有任何想法请让我知道。谢谢。