У меня есть список флажков, созданный в форме со следующим
->add('ISPreNbStudents', ChoiceType::class, [
'multiple' => false,
'choices' => [
'1' => 1,
'2' => 2,
'3' => 3,
'4' => 4,
'5' => 5,
],
'expanded' => true
])
Затем я могу отобразить это в файле ветки следующим образом: {{ form_widget(form.ISOptMonths) }}
Проблема в том, что теперь он отображает список меток и ввода, как это
<input type = "radio" id = "availability_ISPreNbStudents_0" name = "availability[ISPreNbStudents]" value = "1">
<label for = "availability_ISPreNbStudents_0">1</label>
<input type = "radio" id = "availability_ISPreNbStudents_1" name = "availability[ISPreNbStudents]" value = "2">
<label for = "availability_ISPreNbStudents_1">2</label>
Мне нужно поместить обертку вокруг каждой метки/входа, как это
<div class = "styled-input-single">
<input type = "checkbox" name = "case-1" id = "1" />
<label for = "1">1</label>
</div>
<div class = "styled-input-single">
<input type = "checkbox" name = "case-2" id = "2" />
<label for = "2">2</label>
</div>
Как я могу этого добиться?




Вы должны использовать Symfony Настройка рендеринга формы.
Таким образом, вы можете получить доступ к полю формы по полю, например:
{{ form_start(form) }}
<div class = "my-custom-class-for-errors">
{{ form_errors(form) }}
</div>
<div class = "row">
<div class = "col">
{{ form_row(form.task) }}
</div>
<div class = "col" id = "some-custom-id">
{{ form_row(form.dueDate) }}
</div>
</div>
{{ form_end(form) }}
Вы также можете отображать поля вручную:
<div class = "styled-input-single">
{{ form_widget(form.name_of_form_element) }}
{{ form_label(form.name_of_form_element) }}
<!-- and for errors of this field -->
{{ form_errors(form.name_of_form_element) }}
</div>
Для рендеринга поля выбора или опции вручную перейдите по этой ссылке:
https://symfonycasts.com
Я обновил свой ответ двумя новыми сведениями и ссылкой на то, где вы найдете пример рендеринга выбора и так далее. В основном вы можете получить доступ к каждому атрибуту вашего поля. Идентификаторы, значения, имена и т. д.... Надеюсь, это поможет.
Я наконец нашел решение:
Вот как вы печатаете свой список:
{{ form_row(registrationForm.firstRecourse) }}
Теперь вы хотите добавить обертку вокруг каждой опции:
<div class = "row">
{{ form_label(registrationForm.ISPreNbStudents) }}
{% for checkbox in registrationForm.ISPreNbStudents.children %}
<div class = "styled-input-single">
{{ form_widget(checkbox) }}
{{ form_label(checkbox) }}
{{ form_errors(checkbox) }}
</div>
{% endfor %}
</div>
Это не будет работать с несколькими вариантами флажков