Я пытаюсь настроить кнопку отправки формы темы, но эта кнопка обрабатывается два раза. Первый раз, когда блок переопределяется, и второй раз, когда я использую его в своей форме.
Вот код и результат.
Большое спасибо.
{# src/YagoQuinoy/Simple/BlogBundle/Resources/views/Blog/searchArtciles.html.twig #}
{% form_theme form _self %}
{% block submit_widget %}
<button><i class="fa fa-bicycle"></i></button>
{% endblock submit_widget %}
{{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
{{ form_errors(form.search) }}
{{ form_widget(form.search) }}
{{ form_widget(form.submit, {'attr': {'class': 'e-search-articles-submit'}}) }}
{{ form_end(form) }}
Ссылка на изображение (не имеет 10 репутации) Двойное изображение кнопки
Решено с использованием отдельного файла шаблона, как это предлагается в документации.
Если вы посмотрите на https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig, тогда вы можете видеть, что {% block submit_widget%} не содержит элемент кнопки.
submit_widget выглядит так:
{% block submit_widget -%}
{% set type = type|default('submit') %}
{{- block('button_widget') -}}
{%- endblock submit_widget %}
И этот блок содержит button_widget:
{% block button_widget -%}
{% if label is empty -%}
{%- if label_format is not empty -%}
{% set label = label_format|replace({
'%name%': name,
'%id%': id,
}) %}
{%- else -%}
{% set label = name|humanize %}
{%- endif -%}
{%- endif -%}
<button type="{{ type|default('button') }}" {{ block('button_attributes') }}>{{ label|trans({}, translation_domain) }}</button>
{%- endblock button_widget %}
Вы должны изменить button_widget (и добавить класс фа фа велосипед), если вы хотите добавить шрифт Awesome icon — например:
{% block button_widget -%}
{% if label is empty -%}
{%- if label_format is not empty -%}
{% set label = label_format|replace({
'%name%': name,
'%id%': id,
}) %}
{%- else -%}
{% set label = name|humanize %}
{%- endif -%}
{%- endif -%}
<button type="{{ type|default('button') }}" {{ block('button_attributes') }}><i class="fa fa-bicycle"></i>{{ label|trans({}, translation_domain) }}</button>
{%- endblock button_widget %}