gpt4 book ai didi

macros - Twig - 使用来自父模板的宏

转载 作者:行者123 更新时间:2023-12-05 01:27:04 24 4
gpt4 key购买 nike

假设我在 macro.html.twig 中有一个简单的宏:

{% macro simple_macro() %}
<h1>Simple macro</h1>
{% endmacro %}

继承人模板layout.html.twig:

{% block body %}{% endblock %}

和主文件content.html.twig:

{% extends 'layout' %}

{% from 'simple_macro' import simple_macro %}

{% block body %}
{{ simple_macro() }}
{% endblock %}

以下代码有效,但我有很多文件,例如 content.html.twig,我不想复制/粘贴 {% from 'simple_macro' import simple_macro %}在每个文件中。所以我将这一行移到了layout.html.twig:

{% from 'simple_macro' import simple_macro %}

{% block body %}{% endblock %}

但它抛出错误:

“content”中不存在函数“simple_macro”。

这是我的问题:是否可以在父模板中导入宏并在子模板中使用它们?

感谢您的宝贵时间。

最佳答案

不,这是不可能的。宏必须导入到您使用它们的特定文件中,这种行为是设计来增加代码的冗长性和可读性的——如果您可以在模板中使用大量随机标签而没有明确的代码,生活就不会变得更加清晰它们在哪里被定义的线索。

关于macros - Twig - 使用来自父模板的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20740230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com