Я пытаюсь создать несколько полей 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. Является ли это возможным?






Я столкнулся с той же проблемой. Вот мой обходной путь.
Сначала добавьте шаблон в 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 }}
...
Надеюсь, это будет кому-то полезно!