我有三个页面使用相同的宏。我将相同部分的代码放在所有三个页面的顶部。我可以将此宏放在外部文件中并重复使用吗?
这里是宏:
{% macro generateMenu(item) %}
<li>
<h4>
<a class="{{ item.class }}" href="{{ item.link }}">
{{ item.label }}
</a>
</h4>
</li>
{% endmacro %}
调用宏:
<ul class="">
{% for item in Menu %}
{{ _self.generateMenu(item) }}
{% endfor %}
</ul>
事实上,有一些变化,我会使用一些参数。但重点是:我想将此宏放在外部文件中以重用代码。
答案 0 :(得分:4)
正如文档所述:http://twig.sensiolabs.org/doc/tags/import.html
在外部文件中定义宏并将其导入到使用它的每个文件中:
{% import 'external.file.here' as something %}
{{ something.macro_in_that_file(some, params) }}