Twig:有条件地从宏返回

时间:2012-10-06 12:52:39

标签: macros return twig

我想有条件地从一个宏返回,就像这个伪代码:

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

这可能是Twig,也许是Twig扩展吗?

3 个答案:

答案 0 :(得分:2)

树枝中没有回复,但您可以将其余的宏包裹在if not condition块中,如下所示:

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

请记住,树枝是一种模板语言。

答案 1 :(得分:0)

{% 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

答案 2 :(得分:0)

以下是示例:

{# 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 %}

你可以在线玩: https://twigfiddle.com/etn6ef