Twig - Bootstrap 4 Layout с необработанной этикеткой - PullRequest
0 голосов
/ 17 апреля 2019

Я использую тему 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 &lt;a href="/uploads/5/c/5cb5daef7f214545309154.JPG"&gt;(current file)&lt;/a&gt;</legend>

Это ответственный закороченный исходный код из bootstrap_4_layout.html.twig :

<...>{{ translation_domain is same as(false) ? label : label|trans({}, translation_domain) }}</...>

Что я пробовалпока что:

  1. Перезаписать блок form_label фильтром |raw:

    {%- block form_label -%}
         {% set label = label|raw %}
         {{ parent() }}
    {%- endblock -%}
    
  2. Или по моему усмотрениюблок добавления фильтра |raw:

    {{ form_label(form.file, 'label.file'|trans~'<a href="'~download_uri~'">('~'current.file'|trans~')</a>'|raw }}
    
  3. Если я скопирую целые 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, как в третьем подходе?
...