我经常在Twig中使用类似的样板代码:
{% if (somelongcond) %}
<div>
{% endif %}
<p>Some long content</p>
{% if (somelongcond) %}
</div>
{% endif %}
上面的问题是如果条件改变了,它可能是维护的噩梦,我也必须一直向下看以找到匹配的if语句并查看条件是否相同。
替代方案是这样的:
{% if (somelongcond) %}
<div>
{% include 'content' %}
</div>
{% endif %}
{% include 'content' %}
但这需要创建一个新文件,如果我需要多次这样做,这可能会变得一团糟。
有没有更好的方法来做到这一点。
答案 0 :(得分:0)
这有点短
{{ if somelongcond ? '<div>'|raw }}
<p>Some long content</p>
{{ if somelongcond ? '</div>'|raw }}
然后,如果重复相同的条件,您可以将其设置在文件的顶部,然后如果您需要更改它,您只需要执行一次。
{% if somelongcond %}
{% set cond = true %}
{% else %}
{% set cond = false %}
{% endif %}
{{ if cond ? '<div>'|raw }}
<p>Some long content</p>
{{ if cond ? '</div>'|raw }}