我有这样构造的数组
add_to_context('custom', [
[
'title' => 'My title',
'link' => 'My link'
],
[
'title' => 'My title 1',
'link' => 'My link 1'
]
]);
鉴于我有一个简单的循环
{% for item in custom %}
<li>
<h1>{{ item.title }}
<img src="{{ item.link|e }}" target="_blank">
</li>
{% endfor %}
一切正常。但是我想打印两个键都带有值的元素。例如,如果我有
[
'title' => '',
'link' => 'mylink'
]
我不想打印这个。如果链接为空,我也不要。如果两者都为空-相同。我只想在两个键都有值的情况下打印它。那么,我该怎么做?
答案 0 :(得分:6)
也许你可以做这样的事情。
Twig甚至为此内置了一些功能:
<ul>
{% for item in custom if item.title and item.link %}
<li>{{ item.title }}</li>
{% endfor %}
</ul>
我还没有测试过,但是我认为and
语句中的if
应该可以工作。
答案 1 :(得分:1)
您可以在模板中添加一个简单的测试:
{% for item in custom %}
{% if item.title|length %}
<li>
<h1>{{ item.title}}
<img src="{{ item.link|e }}" target="_blank">
</li>
{% endif %}
{% endfor %}
通常来说,“ 0” | trim 表达式的计算结果为false。