使用 Symfony 和 Twig 循环

Loop with Symfony and Twig

我有两个 for 循环。一个包含 table 中所有数据的数组,另一个包含一个数组,其中外键是第一个数组中的 table。

我想看看有多少匹配项并检查它,但循环不起作用。

{% if comunidades %}
     {% for comunidad in comunidades %}
          {% if likes %}
               {{ likes[0].comunidad.id }}
               {{ likes[1].comunidad.id }}
               --{{ comunidad.id }}--
               {% if comunidad.id in likes|keys %}
                    OK
               {% endif %}
          {% endif %}
     {% endfor %}
{% endif %}

这会打印: 1 3 --3-- 1 3 --2-- 1 3 --1-- OK

谢谢

因为likes数组的key是一个对象。你应该只使用对象的 id 使用 map filter 像:

{% for comunidad in comunidades %}
          {% if likes %}
               {{ likes[0].comunidad.id }}
               {{ likes[1].comunidad.id }}
               --{{ comunidad.id }}--
               {% if comunidad.id in likes|map(p => p.comunidad.id)  %}
                    OK
               {% endif %}
          {% endif %}
     {% endfor %}

输出将是:

    1
3
--3--
        OK
            1
3
--2--
            1
3
--1--
        OK

所以只有第一个和最后一个元素匹配

this working fiddle

希望对您有所帮助