symfony - Twig - 带有原始标签的 Bootstrap 4 布局
问题描述
我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 %}
这是呈现形式的源文本
<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 }}
form_label
如果我从块中复制整个 30 行bootstrap_4_layout
并将其附加到负责的行,则|raw
过滤器正在工作:<...>{{ translation_domain is same as(false) ? label|raw : label|trans({}, translation_domain)|raw }}</...>
但我认为复制 30 行代码只是|raw
为它附加过滤器是一个非常愚蠢和肮脏的解决方案。
所以我的问题:
- 为什么第一种和第二种方法不起作用?
- 如何在不复制整个引导程序
form_label
块的情况下将下载链接显示为转义的 html,就像第三种方法一样?
解决方案
推荐阅读
- bigdata - 我有 hadoop 1.0.3,当我使用 jps 命令时没有显示名称节点
- python - 如何在熊猫中堆叠和设置列名?
- android - 如何在 Roboelectric 中测试 activity.finishAffinity()?
- php - 将数组转换为关联数组和索引数组
- reactjs - 如何在不重新加载页面的情况下更新和删除
- android - Flutter 应用程序:IOS 模拟器未连接到 Android Studio
- wordpress - 使用 Timber 添加多级菜单
- java - 是否可以在类中使用多类型
- javascript - Typeof Buffer 数据返回类型为对象
- python - Python:语法错误:“返回”外部函数