如果Twig中的变量为null,则取消父模板

时间:2014-01-22 10:13:51

标签: twig

我是Twig的新手,我正在试图弄清楚如何实现以下目标。

我有一个具有一组属性的对象,我想用不同的Twig模板渲染它们,具体取决于它的属性类型(文本,图像,日期等)。

我想按如下方式渲染它们:

<div class="row">
      <div class="title">Title of property</div>
      <div class="propertycontent">
           //Specific property content depending on property type
      </div>
</div>

我的问题是,如果未定义属性,我无法想出跳过完整的输出。我希望能够使用父模板来处理渲染的属性内容的“包装”。如果属性值未定义,是否可以使用不返回任何内容的父模板?还有另一个不依赖于包含“开始”/“结束”的好解决方案来包装每个模板吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

解决方案:使用值(可能为null)和标题

调用parent

家长(propery_wrapper.twig):

{% if value %}
    <div class="row">
    <div class="title">{{title}}</div>
    <div class="propertyContent">
            {% block content %}{% endblock %}
        </div>
    </div>
{% endif %}

孩子(身高属性):

{% extends 'property_wrapper.twig' %}
{% block content %}
    {{ value.value|number_format(2, ',') }} m
{% endblock %}