Twig 通过满足细枝中条件的元素包装内容

Twig 通过满足细枝中条件的元素包装内容,twig,Twig,我经常在Twig中使用类似的样板代码: {% if (somelongcond) %} <div> {% endif %} <p>Some long content</p> {% if (somelongcond) %} </div> {% endif %} {%if(somelongcond)%} {%endif%} 一些冗长的内容 {%if(somelongcond)%} {%endif%} 上面的问题是,如果条件发生了变化,这可能

我经常在Twig中使用类似的样板代码:

{% if (somelongcond) %}
<div>
{% endif %}
    <p>Some long content</p>
{% if (somelongcond) %}
</div>
{% endif %}
{%if(somelongcond)%}
{%endif%}
一些冗长的内容

{%if(somelongcond)%} {%endif%}
上面的问题是,如果条件发生了变化,这可能是一个维护噩梦,我还必须一直往下看,找到匹配的if语句,看看条件是否相同

另一种选择是这样的:

{% if (somelongcond) %}
  <div>
      {% include 'content' %}
  </div>
{% endif %}
{% include 'content' %}
{%if(somelongcond)%}
{%include'内容“%”
{%endif%}
{%include'内容“%”
但这需要创建一个新文件,如果我需要多次这样做,它可能会变得一团糟

有没有更好的方法来完成上述任务。

这稍微短一点

{{ if somelongcond ? '<div>'|raw }}
    <p>Some long content</p>
{{ if somelongcond ? '</div>'|raw }}
{{if somelongcond?''| raw}
一些冗长的内容

{{如果是长秒?''raw}
然后,如果重复相同的条件,您可以将其设置在文件的顶部,然后如果需要更改,您只需执行一次

{% if somelongcond %}
    {% set cond = true %}
{% else %}
    {% set cond = false %}
{% endif %}

{{ if cond ? '<div>'|raw }}
    <p>Some long content</p>
{{ if cond ? '</div>'|raw }}
{%if somelongcond%}
{%set cond=true%}
{%else%}
{%set cond=false%}
{%endif%}
{{如果条件?'''raw}
一些冗长的内容

{{如果条件?'''raw}
这种语法对我不适用。我认为“如果”的说法不能放在两个括号里。