gpt4 book ai didi

arrays - Twig 检查值是否在数组中

转载 作者:行者123 更新时间:2023-12-04 03:13:17 24 4
gpt4 key购买 nike

我无法使用 Twig 检查数组中是否存在值。
如果购物车中有某种产品,我想在结账时隐藏运输方式。
我只能用 Twig代码,所以我必须在其中找到一个逻辑。

因此,假设当产品 ID 1234 在购物车中时,我想隐藏 #certain_div
所以我拥有的是这个 ->

  {% if checkout %}

{% set array = theme.sku_shipping_rule | split(',') %}
// theme.sku_shipping_rule = a text string like 1234, 4321, 5478

{% if checkout.products %}
{% for product in checkout.products %}
{% if product.sku in array %}

<style>
#certain_div {
display: none;
}
</style>

{% endif %}
{% endfor %}
{% endif %}

{% endif %}

我面临的问题是我的代码似乎总是返回 true。所以即使 product.sku不匹配它仍然隐藏的数组中的值 #certain_div .我已经测试过放置 {{ product.sku }}就在之前 <style> .

我怎么了?

非常感谢任何帮助!

更新:

我已经更新了问题/代码以显示正在发生的事情
{% if checkout %}
{% set skuToCheck = theme.sku_shipping_rule | split(',') %}
{% set skuInCart = [] %}
{% if checkout.quote.products %}
{% for product in checkout.quote.products %}
{% set skuInCart = skuInCart | merge([product.sku]) %}
{% endfor %}
{% endif %}

{% for myVar in skuInCart %}
{{ myVar }}<br/>
{% endfor %}

// this prints
PSYGA1 // where this sku should NOT match
FP32MA4

{% for myVar in skuToCheck %}
{{ myVar }}<br/>

// this prints
FP32LY4
FP32STR4
FP32MA4

{% if myVar in skuInCart %} // also tried with | keys filter
{{ myVar }} is found
{% endif %}
{% endfor %}
{% endif %}

所以我所做的是将购物车中产品的 sku 放在一个数组中 skuInCart .接下来我要检查是否 myVar存在于 skuInCart大批。如果是这样打印 myVar is found .

发生的情况是您应该期望它只打印匹配的结果。然而,它实际上打印了所有存在的值 skuInCart (使用 keys 过滤器)或完全空白而不使用 keys筛选。

最佳答案

你在理论上所做的应该有效,看看这个 fiddle 示例向你展示一个工作演示:

https://twigfiddle.com/yvpbac

基本上:

<div id="certain_div">
This should not show up
</div>

{% set searchForSku = "890" %}
{% set productSkuArrayString = "1234,4567,890" %}
{% set productSkuArray = productSkuArrayString|split(',') %}
{% if searchForSku in productSkuArray %}
<style>
#certain_div {
display: none;
}
</style>
{% endif %}

<!-- New Trial -->

<div id="certain_div">
This should show up
</div>

{% set searchForSku = "891" %}
{% set productSkuArrayString = "1234,4567,890" %}
{% set productSkuArray = productSkuArrayString|split(',') %}
{% if searchForSku in productSkuArray %}
<style>
#certain_div {
display: none;
}
</style>
{% endif %}

将导致:
<div id="certain_div">
This should not show up
</div>

<style>
#certain_div {
display: none;
}
</style>

<!-- New Trial -->

<div id="certain_div">
This should show up
</div>

关于arrays - Twig 检查值是否在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43216864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com