带有Twig的条件HTML块

时间:2014-07-24 15:31:05

标签: php twig silex

我使用Silex和Twig作为应用程序,我想使用Twig根据方法调用隐藏或显示内容。我喜欢自定义标签,如:

{{ 'foo'|check }}
    <p>This will only be displayed if check passes</p>
{{ endcheck }}

...然后是其他方法,例如:

check($key) {
    if($key === 'foo') {
        ...
    } else {
        ....
    }
}

...决定是否显示HTML内容。

2 个答案:

答案 0 :(得分:1)

据我所知,你的方法可以编程为:

check($key) {
    if($key === 'foo') {
        return true;
    } else {
        return false;
    }
}

然后您的自定义过滤器将使用如下:

{% if 'foo'|check %}
    <p>This will only be displayed if check passes</p>
{% endif %}

您只能使用{{ }}进行直接输出(类似于PHP中的<?= ?>。)

答案 1 :(得分:0)

你错过了TWIG的观点。 TWIG存在的一个主要原因是使PHP脱离模板。因此,如果您有一些非常复杂的事情,那么在将数组传递给TWIG之前处理数组,否则如果它像您所描述的那样简单,那么只需让树枝模拟该功能。

{% if row.val == 'foo' %}
    this will be displayed
{% else %}
    maybe you do not want anything displayed?
{% endif %}