Wolfnsex
@Wolfnsex
Если не хочешь быть первым - не вставай в очередь!

Как добавить класс по умолчанию элементу формы при его темизации Symfony3?

Доброго времени суток уважаемые!

Учусь темизировать формы в Symfony3 / Twig. Хочу изменить стандартный блок form_widget_simpe:
{% block form_widget_simple %}
    {% set type = type|default('text') %}
    <input type="{{ type }}" {{ block('widget_attributes' }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endblock form_widget_simple %}


Здесь, в блоке widget_attributes выводятся name, id, required и прочие поля.

Подскажите пожалуйста, как задать для этого блока по параметр "class" по умолчанию? То есть, что бы при выводе, среди прочих полей, по умолчанию выводился <input ... class="my-class" ... />
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
@ig0r88
{%- block form_widget_simple -%}
    {%- set type = type|default('text') -%}
    {%- if attr.class is not defined -%}
        {%- set attr = attr|merge({'class': 'my-class'}) -%}
    {%- endif -%}
    <input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{%- endblock form_widget_simple -%}


Или если нужно всегда добавлять класс:

{%- block form_widget_simple -%}
    {%- set type = type|default('text') -%}
    {%- set attr = attr|merge({'class': (attr.class|default ~ ' my-class')|trim}) -%}
    <input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{%- endblock form_widget_simple -%}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы