【发布时间】:2016-11-16 05:50:28
【问题描述】:
我有几个以 Symfony 形式使用的“小部件”。这些是日期选择器字段、颜色选择器字段、精美的组合框等。我将每个模板保存在单独的 Twig 文件中,如下所示:
# start of color_widget.html.twig
{% block color_widget %}
<div id="{{ id }}" class="input-group colorpicker-component">
<span class="input-group-addon"><i></i></span>
<input type="text" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %} class="form-control" />
</div>
<script>
$(function() {
$('#{{ id }}').colorpicker();
});
</script>
{% endblock %}
# end of color_widget.html.twig
现在,在当前设置下,我应该将所有这些块保存在一个大模板中。但我想创建一个循环来包含这些单独文件中定义的块。本质上,我正在尝试替换它:
{% use "@CoreWidgets/color/widget.html.twig" %}
{% use "@CoreWidgets/date_picker/widget.html.twig" %}
{% use "@OtherWidget/widget.html.twig" %}
类似这样的:
{% for widget in _widgets %}
{% use widget.path %}
{% endfor %}
但是由于 use 标签不支持变量它不起作用。
我想要这样的方法,因为我想拥有漂亮的小部件包 - 将 CSS、JS、Twig 模板存储在一个地方(一个用于表单元素,另一个用于显示实体信息的页面元素)。然后我可以在配置文件中定义这些包,并整齐地设置和存储。
有没有办法做到这一点?
【问题讨论】: