2012-10-06 63 views
2

我想有條件地從宏觀回報,這樣的僞代碼返回:嫩枝:有條件地從宏觀

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

這是可能的嫩枝,或許還有一個枝條延伸?

+0

[這是不好用的宏返回值(HTTPS: //github.com/fabpot/Twig/issues/1497#issuecomment-54506873) – moldcraft

回答

2

有在樹枝沒有回報,但是你可以用宏的其餘部分在if not condition塊這樣的:

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

請記住,樹枝是一個模板語言。

+0

你知道嗎?可以通過編寫Twig擴展來創建回報? –

+0

我不知道樹枝內部足以回答這個問題。 – Maerlyn

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