如何在此循环中添加迭代

时间:2018-12-18 15:56:16

标签: php html shopify liquid liquid-layout

我如何在此for循环上添加一个代替{{i}}的数字 请注意,此循环没有具体限制,因为无论有多少个订购商品,它都会得到。

<img src="https://billiger.de/sale?shop_id=Acaraa&oid={{ order.order_number }}

{% for line_item in order.line_items %}
&aid_{{i}}={{ line_item.product_id }}&name_{{i}}={{ line_item.product.title }}&cnt_{{i}}={{ line_item.quantity }}&val_{{i}}={{ line_item.product.price | divided_by: 1.19  | times: line_item.quantity | money_without_currency}}
{% endfor %}

" width="1" height="1" border="0" alt="" />

所以循环应该看起来像这样

&aid_1=ARTICLE-ID-1&name_1=ARTICLE-NAME-1&cnt_1=ARTICLE-COUNT-1&val_1=ARTICLE-VALUE-1
&aid_2=ARTICLE-ID-2&name_2=ARTICLE-NAME-2&cnt_2=ARTICLE-COUNT-2&val_2=ARTICLE-VALUE-2
&aid_3=ARTICLE-ID-3&name_3=ARTICLE-NAME-3&cnt_3=ARTICLE-COUNT-3&val_3=ARTICLE-VALUE-3

PS:以上代码将在shopify模板文件中使用

谢谢

1 个答案:

答案 0 :(得分:1)

forloop对象具有许多帮助器方法,包括用于计算循环当前迭代的方法:

  • forloop.index从1开始计数循环迭代
  • forloop.index0将从0开始计数循环迭代

在您的示例中,您将修改代码以使用适当的方法代替{{i}};即:

<img src="https://billiger.de/sale?shop_id=Acaraa&oid={{ order.order_number }}

{% for line_item in order.line_items %}
&aid_{{forloop.index}}={{ line_item.product_id }}&name_{{forloop.index}}={{ line_item.product.title }}&cnt_{{forloop.index}}={{ line_item.quantity }}&val_{{forloop.index}}={{ line_item.product.price | divided_by: 1.19  | times: line_item.quantity | money_without_currency}}
{% endfor %}

" width="1" height="1" border="0" alt="" />

我假设您要在这里开始计算1的迭代次数,但是如果要从forloop.index0开始,请使用0

Here is the documentation for forloop.index用于Shopify的官方Liquid库(使用Ruby)。

由于您已将问题标记为PHP,因此您似乎正在使用库的php-liquid端口-它出现在Shopify的Liquid ports列表中。

该端口似乎没有任何详细的文档,但是如果您查看unit tests,将会发现这些forloop帮助器已经实现。

希望这会有所帮助:)