Opencart 3 TWIG: как правильно использовать оператор AND

Рейтинг: 0Ответов: 1Опубликовано: 13.02.2023

Пытаюсь использовать оператор AND в TWIG в Opencart 3 и он не работает. Пожалуйста подскажите что я делаю не так.

Есть страница товара с атрибутами. Я хочу сделать условие, что если есть два атрибута с конкретным ID, чтобы срабатывало мое условие.

{% for attribute_group in attribute_groups %}
    {% for attribute in attribute_group.attribute %}
        {% if attribute.attribute_id == 2 and attribute.attribute_id == 3 %}
            First condition
        {% elseif attribute.attribute_id == 2 %}
            Second condition
        {% elseif attribute.attribute_id == 3 %}
            Third condition
        {% else %}
        {% endif %}
    {% endfor %}
{% endfor %}

Вот пример на словах:

Если есть атрибут с id равным 2 и атрибут с id равным 3, то писать "Этаж/кол-во этажей"
Если есть атрибут с id равным 2 только, то писать "Этаж"
Если есть атрибут с id равным 3 только, то писать "Кол-во этажей"

Ответы

▲ 0Принят

Помогли на другой площадке. Я изначально не правильно понимал оператор AND, поэтому ничего не получалось. Правильный ответ получается такой:

{% set words = [] %}
{% for attribute_group in attribute_groups %}
    {% for attribute in attribute_group.attribute %}
        {% if attribute.attribute_id == 2  %}
            {% set words = words|merge(['Этаж',]) %}
        {% elseif attribute.attribute_id == 3  %}
            {% set words = words|merge(['Кол-вот этажей',]) %}
        {% endif %}
    {% endfor %}
{% endfor %}

{% if words|default  %}
    {{ words|join('/') }}
{% endif %}