检查字段是否在twig中的数组中

时间:2017-01-29 作者:JeffTalbot

您好,我正在寻找一种方法来检查字段是否包含字段数组中的内容。如果任何字段都有我希望文本显示的内容,但只能显示一次,所以我不能只使用for循环。

下面的解决方案可行,但必须有更好的方法才能做到这一点?

{% set foo = 0 %}
{% for field_group in item if field_group.sticky_nav|length %}
    {% set foo = 1 %}
{% endfor %}

{% if foo >= 1 %}
    <p>Text</p>
{% endif %}
项目看起来像这样

[item] => Array
    (
        [0] => Array
            (
                [title] =>
                [description] =>
                [link] =>
                [sticky_nav] => foo
            )
        [1] => Array
            (
                [title] =>
                [description] =>
                [image] =>
                [sticky_nav] => bar
            )
    )
我真的在寻找一个像下面这样的解决方案,但它不起作用。

{% if field_group.sticky_nav in item %}
    <p>Text</p>
{% endif %}
有人知道这个问题的解决方案吗?

1 个回复
最合适的回答,由SO网友:Phaze Phusion 整理而成

简单回答:no. 根据Twig的功能,循环将按原样进行优化。

更好的方法是使用php循环检查值,然后将标志发送到Twig。

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp