我正在尝试使用HiddenType
在Form Builder中创建多个CollectionType
字段,以便在控制器中处理这些字段时对它们进行分组。但是我希望每个字段都具有不同的属性。是否可以使用entry_options
为每个条目设置不同的选项?
我正在使用javascript拖放插件将元素拖放到容器中,当拖放这些元素时,JS代码会更新这些隐藏的字段,这些字段用于捕获控制器中的信息。因此,必须对这些字段进行某种组合,以便我可以在控制器中轻松处理它们。
一个例子:
$builder->add(self::FIELD_MAPPED_COLUMNS, CollectionType::class, [
'entry_type' => HiddenType::class,
'data' => ['field1', 'field2', 'field3'],
'label' => false,
'entry_options' => [
'attr' => [
'data-my-field' => '?????'
]
]
])->add('submit', SubmitType::class);
我想为每个data-my-field
设置一个不同的HiddenType
,以便可以在Javascript中使用它。有可能吗?
答案 0 :(得分:0)
我只是遇到了同样的问题。这是我的解决方法。
首先在entry_options中添加模板:
$builder->add(self::FIELD_MAPPED_COLUMNS, CollectionType::class, [
'entry_type' => HiddenType::class,
'data' => ['field1', 'field2', 'field3'],
'label' => false,
'entry_options' => [
'attr' => [
'data-my-field' => '%templateForMyFieldByFieldData%'
]
]
])->add('submit', SubmitType::class);
然后在Twig循环中分别渲染集合的每个字段,并用所需的值替换模板:
...
{{ (form_widget(field) | replace('%templateForMyFieldByFieldData%', valueToInsert)) | raw }}
...
希望对某人有用!