有没有办法用CollectionType构建一个可以添加不同原型的表单。
背景:我想构建一个“Pagebuilder”。 功能就像这个,但我必须将它集成到现有的应用程序中。
所以我必须添加不同的原型。可以使用选择字段切换不同的原型。
应该有多个具有不同表单字段的表单。 例如。
一个表格应尽可能简单。 所以我需要添加多个原型的可能性。
这已经可以(以及如何)?
答案 0 :(得分:0)
编辑:虽然您的问题是关于CollectionType,但在仔细查看截图后,我认为您只需创建一个包含多个子表单的主表单,并根据用户选择显示相应的子表单(使用javascript)。 / p>
答案 1 :(得分:0)
如果您坚持使用CollectionType(我在屏幕截图中没有看到原因),那么您可以执行以下操作:
$builder->add('entity1', CollectionType::class, [
'label' => 'entity.recipe.entity1',
'entry_type' => \AppBundle\Form\Type\Entity1Type::class,
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__EntityId__',
'entry_options' => ['required' => false],
]);
$builder->add('entity2', CollectionType::class, [
'label' => 'entity.recipe.entity2',
'entry_type' => \AppBundle\Form\Type\Entity2Type::class,
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__EntityId__',
'entry_options' => ['required' => false],
]);
...
根据需要添加任意数量的实体类型,每个实体类型都是一个包含零个或多个项目的集合。