我有兩個 for 循環。一個包含表中所有數據的數組,另一個包含一個數組,其中外鍵是第一個數組中的表。我想看看有多少匹配項并檢查它,但循環不起作用。{% 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謝謝
1 回答

qq_遁去的一_1
TA貢獻1725條經驗 獲得超8個贊
因為 likes 數組的 key 是一個對象。您應該只使用對象的 id 來使用地圖過濾器,例如:
{% 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
所以只有第一個和最后一個元素會匹配
- 1 回答
- 0 關注
- 148 瀏覽
添加回答
舉報
0/150
提交
取消