我使用Silex和Twig作为应用程序,我想使用Twig根据方法调用隐藏或显示内容。我喜欢自定义标签,如:
{{ 'foo'|check }}
<p>This will only be displayed if check passes</p>
{{ endcheck }}
...然后是其他方法,例如:
check($key) {
if($key === 'foo') {
...
} else {
....
}
}
...决定是否显示HTML内容。
答案 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 %}