我是Twig的新手,我正在试图弄清楚如何实现以下目标。
我有一个具有一组属性的对象,我想用不同的Twig模板渲染它们,具体取决于它的属性类型(文本,图像,日期等)。
我想按如下方式渲染它们:
<div class="row">
<div class="title">Title of property</div>
<div class="propertycontent">
//Specific property content depending on property type
</div>
</div>
我的问题是,如果未定义属性,我无法想出跳过完整的输出。我希望能够使用父模板来处理渲染的属性内容的“包装”。如果属性值未定义,是否可以使用不返回任何内容的父模板?还有另一个不依赖于包含“开始”/“结束”的好解决方案来包装每个模板吗?
提前致谢。
答案 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 %}