Отображение типа поля выбора (symfony2) в виде кнопок

У меня есть проблема, которую я не могу решить. Как мне подойти к следующему: у меня есть поле выбора с 4 разными записями, которые я отлично отображаю в форме выбора (ветка). Однако я хотел бы показать 4 записи как 4 отдельные кнопки. Как изменить тип ввода этих 4? Или я должен сделать что-то совершенно другое?

Спасибо за помощь -AS

редактировать (новый следующий вопрос):

Александру, спасибо за помощь. Это было очень полезно. Я добавил в fields.html.twig следующее:

{% block _appbundle_action_Style_widget -%}
    {% for child in form %}
        <input type="button" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
    {% endfor %}
{%- endblock _appbundle_action_Style_widget %}

Однако, когда я визуализирую его, он говорит мне, что есть преобразование массива в строку, которое почему-то не работает. Когда я удаляю атрибуты виджета, значение и отмеченные части, кнопки отображаются без них.


person AugustusS    schedule 14.03.2015    source источник


Ответы (2)


У вас есть несколько вариантов на выбор:

  1. Вы можете создать новый тип поля, назовем его «button_group», который расширит тип «выбор» и напишет для него собственный Twig, примерно так: https://github.com/symfony/symfony/blob/2.7/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig#L95

  2. Вы можете использовать тип поля "выбор" с опцией: expanded => true. И создайте для него собственный шаблон формы только для той формы, в которой он вам нужен: http://symfony.com/doc/current/cookbook/form/form_customization.html#what-are-form-themes

person Alexandru Furculita    schedule 14.03.2015
comment
Александру, я только что добавил свой вопрос, но теперь я застрял в другом месте :(. Надеюсь, вы снова сможете мне помочь. - person AugustusS; 15.03.2015
comment
Решение №2 самое лучшее на мой взгляд. Я использовал его, и он работает как шарм! - person Massimiliano Arione; 13.01.2020

Хорошо, я решил свою проблему. Чтобы получить доступ к переменной значения, я должен использовать следующий {{ child.vars.value }}. Теперь я могу взять переменную и поместить ее в тег значения.

Спасибо за вашу помощь.

person AugustusS    schedule 16.03.2015
comment
Я видел ваш вопрос сейчас: D. И это ответ, который у меня был. Рад, что это помогло - person Alexandru Furculita; 16.03.2015