В Symfony каждый radio input можно обернуть в отдельный div, используя специальные опции в формах Symfony.
Чтобы обернуть каждый radio input в отдельный div, нужно создать кастомный шаблон для формы и указать этот шаблон в опциях формы.
1. Создайте новый шаблон для формы. Например, файл radio_div_widget.html.twig
:
{% block radio_widget %} {% spaceless %} <div> {{ block('radio_inner_widget') }} </div> {% endspaceless %} {% endblock radio_widget %} {% block radio_inner_widget %} {% spaceless %} {% for child in form %} <div> {{ form_widget(child) }} {{ form_label(child) }} </div> {% endfor %} {% endspaceless %} {% endblock radio_inner_widget %}
2. В опциях формы укажите новый шаблон:
$form = $this->createFormBuilder($data, ['widget' => 'radio_div']) // ... ->getForm();
3. Отобразите форму в вашем представлении:
{{ form(form) }}
После выполнения этих шагов, каждый radio input будет обернут в отдельный div. Вы можете добавить любую разметку в созданном шаблоне radio_div_widget.html.twig
, чтобы стилизовать каждый radio input по своему усмотрению.
Вот и всё! Теперь каждый radio input будет отображаться, обернутый в отдельный div, как вам требуется.