Macros 细枝:从宏有条件返回

Macros 细枝:从宏有条件返回,macros,return,twig,Macros,Return,Twig,我希望有条件地从宏返回,如以下伪代码: {% macro example() %} ... {% if condition %} {% return %} {% endif %} ... {% endmacro %} Twig是否可能实现这一点?Twig扩展是否可能实现这一点?Twig中没有返回,但您可以将宏的其余部分包装在if not condition块中,如下所示: {% macro example() %} ... {% if not condi

我希望有条件地从宏返回,如以下伪代码:

{% macro example() %}
    ...
    {% if condition %} {% return %} {% endif %}
    ...
{% endmacro %}

Twig是否可能实现这一点?Twig扩展是否可能实现这一点?

Twig中没有返回,但您可以将宏的其余部分包装在
if not condition
块中,如下所示:

{% macro example() %}
    ...
    {% if not condition %}
    ...
    {% endif %}
{% endmacro %}
请记住,twig是一种模板语言

{% macro example(isTrue) %}
    {% if isTrue %}
        10
    {% else %}
        20
    {% endif %}
{% endmacro %}

{% import _self as self %}

{% set aaa = 3 + self.example(true) ~ '' %}
{{ aaa }}

{% set bbb = 3 + self.example(false) ~ '' %}
{{ bbb }}
输出:

13

23
下面是一个例子:

{# macro #}

{% macro check(isTrue) %}
    {% if isTrue %}
        show-paywall
    {% else %}
        show-content
    {% endif %}
{% endmacro %}


{# usage #}
{% import _self as self %}

{% set per = self.check(true)|trim %}

{%  if per == 'show-paywall' %}

{{'Show paywall man.'}}

{% else %}

{{ 'You are good man.' }}

{% endif %}
您可以在线玩:

你知道是否可以通过写一个小树枝扩展名来创建一个报税表吗?我对小树枝内部的了解还不足以回答这个问题。