我正在使用Symfony 3.1.3中的表单,并希望使用CollectionType
添加动态数量的复选框。在我的buildForm
- 类的Type
- 方法中,我使用此代码添加复选框:
$builder->add('levels', CollectionType::class, array(
'entry_type' => CheckboxType::class,
'mapped' => false,
));
foreach($levels as $level) {
$name = 'level_cb_'.$level['name'];
$builder->get('levels')->add($name, CheckboxType::class, array(
'label' => $level['name'],
'required' => false,
'mapped' => false,
));
}
如果我之后立即致电var_dump($builder->get('levels'));
,则复选框会显示在children
的{{1}}和unresolvedChildren
属性中。稍后我在相关模板中调用了CollectionType
,它向我显示{{ dump(form.levels) }}
属性为空。
我错过了一些明显的东西吗?
答案 0 :(得分:0)
因此,似乎系列的子项在我的自定义类型中添加和在Controller中可用的表单之间被清除。
我把代码添加到控制器中,突然一切都按预期工作。也许有人知道背后的原因。
所以在我的SpecialType.php中我只有:
$builder->add('levels', CollectionType::class, array(
'entry_type' => CheckboxType::class,
'required' => false,
'mapped' => false,
));
在我的SpecialFormController.php中,我有:
$form = $this->createForm(SpecialType::class, $entity);
foreach($levels as $level) {
$name = 'level_cb_'.$level['name'];
$form->get('levels')->add($name, CheckboxType::class, array(
'label' => $level['name'],
'required' => false,
'mapped' => false,
));
}