Я использую тему bootstrap_4_layout.html.twig
в symfony 3.4, и я хотел бы перезаписать свой ярлык следующим образом (добавьте ссылку на скачивание):
{% use "bootstrap_4_layout.html.twig" %}
{% block post_file_widget %}
{% set download_uri = form.file.vars.download_uri %}
{{ form_label(form.file, 'label.file'|trans~'<a href="'~download_uri~'">('~'current.file'|trans~')</a>' }}
{{- block('form_widget') -}}
{% endblock %}
Это исходный текст из отрендеренногоform
<legend class="col-form-label">File <a href="/uploads/5/c/5cb5daef7f214545309154.JPG">(current file)</a></legend>
Это ответственный закороченный исходный код из bootstrap_4_layout.html.twig :
<...>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}</...>
Что я пробовалпока что:
Перезаписать блок form_label
фильтром |raw
:
{%- block form_label -%}
{% set label = label|raw %}
{{ parent() }}
{%- endblock -%}
Или по моему усмотрениюблок добавления фильтра |raw
:
{{ form_label(form.file, 'label.file'|trans~'<a href="'~download_uri~'">('~'current.file'|trans~')</a>'|raw }}
Если я скопирую целые 30 строк из блока form_label
в bootstrap_4_layout
и добавлю к ответственной строке |raw
фильтр работает :
<...>{{ translation_domain is same as(false) ? label|raw : label|trans({}, translation_domain)|raw }}</...>
Но я думаю, что это очень глупое и грязное решение - скопировать 30 строк кода только для добавления фильтра |raw
для этого.
Итак, мои вопросы:
- Почему первый и второй подход не работают?
- Как отобразить ссылку для скачивания в виде экранированного html без копирования всего блока начальной загрузки
form_label
, как в третьем подходе?