Мне нужно вести все товары в заказах без повторений. В этом примере в двух разных заказах содержится один и тот же товар.
{% set newprod = [] %} {# Массив выведенных товаров #}
{% for order in orders %} {# Перебираю заказы - их 2 #}
{% if order.courier == cour %} {# Отбор заказов для конкретного курьера #}
{% for product in order.availableOrderProducts %} {# Перебираю товары в заказе #}
{% if product not in newprod %} {# Если товара раньше не было #}
{% set newprod = newprod|merge([product]) %} {# Добавить товар в массив выведенных товаров #}
<tr> {# вывожу информацию о товаре #}
<td class="numeric">
{% for i in newprod %}
{{ i }}<br>
{% endfor %}
</td>
<td class="numeric">{{ order.deliveryDate|date('d.m.Y') }}</td>
<td class="numeric">{{ product }}</td>
<td class="numeric">{{ product.quantity }}</td>
</tr>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
Почему-то, не срабатывает условие в последней итерации {% if product not in newprod %}. Это видно на скрине ниже. В столбце отладка я вывожу массив выведенных товаров. Товар, который уже есть в массиве, снова попадает в него.
Помогите, пожалуйста, найти ошибку
product
- это объекты. Разные объекты, даже если они соответствуют одному и тому же товару, - не равны. Помещайте в массив newprod
что-то типа product.id
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Заранее прошу прощение, если вопрос поставлен неправильно: программирование - не моя основная специализация