XF 2.1 Использование двух таблиц БД в одном цикле

Версия XenForo
2.1.4

ArtiOnMoon

Проверенные
Сообщения
64
Реакции
36
Баллы
715
Добрый день. Столкнулся с некоторой проблемой. Есть цикл, который отображает купленные человеком предметы.

HTML:
<xf:set var="$viewableItems" value="{{ $xf.app.em.getRepository('Myshop\Shop:Purchase').getValidAndDisplayedPurchasesForUser($user) }}" />

    <xf:if contentcheck="true">

        <div class="Shop">

            <xf:contentcheck>

                <xf:foreach loop="$viewableItems" value="$purchase" i="$i">
                </xf:foreach>


Появилась задача сделать два разных див блока для вещей из разных категорий, но в исходной таблице нет переменных по которым можно было бы сортировать, поэтому я подключаю другую таблицу.

HTML:
<xf:set var="$viewableItems" value="{{ $xf.app.em.getRepository('Myshop\Shop:Purchase').getValidAndDisplayedPurchasesForUser($user) }}" />
<xf:set var="$itemsByCategory" value="{{ $xf.app.em.getRepository('Myshop\Shop:Item')->getItemsByCategory() }}" />

Но как мне заставить один цикл сразу парсить два массива? Я пытался сделать так, но у меня вышла ошибка.
Expected a simple variable reference but did not receive one

HTML:
 <xf:foreach loop="[$viewableItems, $itemsByCategory]" value="{{ [$purchase, $category_id] }}" if="$categoryid==1"> </xf:foreach>

Может найдутся другие решения с использованием двух циклов? Бьюсь над проблемой уже несколько часов
 
Последнее редактирование:
Чтобы хоть что-то внятное подсказать, нужно видеть структуру таблиц в базе, и пример того, что должно получиться на странице.
shop_purchase
1573827901825.png

shop_item
1573827977161.png

1573828001809.png
В постбите можете увидеть 4 предмета. Все они находятся в одном div блоке. Необходимо их разделить на два по категории из которых они были куплены.



Написать 2 цикла
Думал уже об этом. Встал вопрос в том, что получается по итогу после первого цикла тогда. То есть какой массив записывать в loop? $purchase? Тогда я опять же буду работать с первой таблицей, а как перейти ко второй?
 
Последнее редактирование:
Ну, для начала, можно заглянуть сюда

Далее, что вам в самом репозитории мешает сгруппировать покупки по категориям?
 
Ну, для начала, можно заглянуть сюда

Далее, что вам в самом репозитории мешает сгруппировать покупки по категориям?
Думал есть метод обойтись без ребилда плагина строго на шаблонах. Если идти вашим методом, то гораздо легче просто внести в таблицу category_id. Спасибо за ответ, в общем
 
Думал есть метод обойтись без ребилда плагина строго на шаблонах. Если идти вашим методом, то гораздо легче просто внести в таблицу category_id. Спасибо за ответ, в общем
Можно, но это так себе решение, в том числе и по производительности
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу