Kas*_*syx 2 import macros twig
让我说我有一个简单的宏macro.html.twig:
{% macro simple_macro() %}
<h1>Simple macro</h1>
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)
继承人模板layout.html.twig:
{% block body %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)
和主文件content.html.twig:
{% extends 'layout' %}
{% from 'simple_macro' import simple_macro %}
{% block body %}
{{ simple_macro() }}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
下面的代码工作,但我有很多文件content.html.twig,我不想复制/粘贴{% from 'simple_macro' import simple_macro %}在每个文件中.所以我把这一行改为layout.html.twig:
{% from 'simple_macro' import simple_macro %}
{% block body %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)
但它会引发错误:
The function "simple_macro" does not exist in "content".
这是我的问题:是否可以在父模板中导入宏并在子模板中使用它们?
感谢您的时间.
不,这是不可能的.宏必须在您使用它们的特定文件中导入,并且这种行为是设计用于增加代码的详细程度和可读性 - 如果您可以在模板中使用大量随机标记而不清楚,则生活将不会更加清晰他们被定义的地方的线索.
| 归档时间: |
|
| 查看次数: |
5116 次 |
| 最近记录: |