为什么默认情况下会选中所有选择选项(Symfony表单)?

时间:2019-04-02 13:43:24

标签: php checkbox symfony-forms symfony4

我试图通过使用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内部传递数据,但是我不确定该怎么做并且没有找到一个有相同问题的人,所以如果有人有任何想法请让我知道。谢谢。

0 个答案:

没有答案