由于我使用SaaS平台,因此我没有太多空间以不同的方式做事。
我在Twig中有两个for循环:
{% for option in product.options %}
{{ option.title }}
{% if option.values %}
{% for value in option.values %}
{{ value.title }}
{% endfor %}
{% endif %}
{% endfor %}
{% for variant in product.variants %}
{{ variant.stock.level }}
{% endfor %}
我尝试做的是在variant.stock.level
for循环中使用product.options
值来显示一些HTML。此值始终与另一个for循环的相应索引值匹配。我也认为这是唯一的方法。
所以我的意思是.....我们说两个for循环包含3个元素。
选项1 选项2 选项3
VARIANT1 VARIANT2 VARIANT3
因此option1需要具有variant1的值。
对于最终结果,我需要知道例如Variant1的值是什么,以显示一些HTML如此:
{% for value in option.values %}
{% check if value from corresponding variant is greater then 0 %}
<li class="on-stock">{{ value.title }}</li>
{% else %}
<li class="out-of-stock">{{ value.title }}</li>
{% endif %}
{% endfor %}
我不知道别的方式来解释这个:)任何帮助表示赞赏....
答案 0 :(得分:0)
您正在寻找attribute。
属性功能可用于访问&#34;动态&#34;变量的属性
由于索引相同,您可以使用loop.index0
您的案例示例
{% if attribute(option.variants, loop.index0) > 0 %}
// some stuff
{% endif %}
答案 1 :(得分:0)
我不确定我是否理解正确,但您可以使用第一个循环中的密钥来访问具有相同索引的product.variants。
{% for key, option in product.options %}
{{ option.title }}
{% if option.values %}
{% for value in option.values %}
{{ value.title }}
{% endfor %}
{% endif %}
{{ product.variants[key].stock.level }}
{% endfor %}