You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCart 3 Twig模板中AND运算符使用错误排查求助

OpenCart 3 Twig 产品属性判断逻辑修复

问题根源

你当前的代码逻辑存在核心错误:在遍历单个属性(attribute)时,判断它的attribute_id同时等于2和3——单个属性的ID不可能同时是两个值,所以第一个条件永远不会触发。同时,循环会导致符合条件的属性分别输出多次(比如有属性2就输出一次"Floor",有属性3就输出一次"Numbers of floors"),完全不符合你“根据是否同时存在两个属性来显示对应文本”的需求。

修复方案

先收集当前产品所有的属性ID,再根据集合的包含关系判断输出内容:

{# 先收集当前产品的所有属性ID到数组 #}
{% set product_attribute_ids = [] %}
{% for attribute_group in attribute_groups %}
    {% for attribute in attribute_group.attribute %}
        {% set product_attribute_ids = product_attribute_ids|merge([attribute.attribute_id]) %}
    {% endfor %}
{% endfor %}

{# 根据属性ID集合判断输出 #}
{% if 2 in product_attribute_ids and 3 in product_attribute_ids %}
    Floor/Number of floors
{% elseif 2 in product_attribute_ids %}
    Floor
{% elseif 3 in product_attribute_ids %}
    Numbers of floors
{% endif %}

代码说明

  • product_attribute_ids:通过遍历所有属性组和属性,把所有属性ID合并到一个数组中,这样就能一次性判断产品是否包含指定属性。
  • 条件判断部分:先检查是否同时包含2和3,再依次检查单个属性存在的情况,确保逻辑顺序正确,完全匹配你的需求。

补充说明

如果需要在某个属性组的位置插入这段文本,可以调整代码位置,确保先收集完所有属性后再进行判断输出。

内容的提问来源于stack exchange,提问作者Alines

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:15:16