外部文件中的 Twig 宏

cba*_*lar 1 symfony twig

我有三个页面使用相同的宏。我将相同部分的代码放在所有三个页面的顶部。我可以将此宏放入外部文件中并重复使用吗?

这里是宏:

{% macro generateMenu(item) %}
    <li>
        <h4>
            <a class="{{ item.class }}" href="{{ item.link }}">
                {{ item.label }}
            </a>
        </h4>
    </li>
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)

调用宏:

<ul class="">
    {% for item in Menu %}
        {{ _self.generateMenu(item) }}
    {% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)

事实上,有一些变化,我将使用一些参数。但重点是:我想把这个宏放在外部文件中以重用代码。

Igo*_*vić 5

如文档所述: http: //twig.sensiolabs.org/doc/tags/import.html

在外部文件中定义宏并将其导入到使用它的每个文件中:

{% import 'external.file.here' as something %}

{{ something.macro_in_that_file(some, params) }}
Run Code Online (Sandbox Code Playgroud)