taurus2790
@taurus2790
Я не программер я только учусъ

Как в getList создавать более сложные фильтры?

Добрый день.

Подскажите как создавать более сложные фильтры в getList. Например по связям.

Вот пример.
Задача: узнать сколько товаров в категории с кодом test
Моё решение:
Моих знаний хватает только на такое решение

//ID категории
$sectionId = '';

// Получаем id категории по коду
$dbSection = \Bitrix\Iblock\SectionTable::getList([
    'filter' => ['CODE' => 'test']
]);

while ($arSection = $dbSection->fetchAll()){
    $sectionId = $arSection[0]['ID'];
}

//Получаем количество товаров
$dbItems = ElementTable::getCount([
    'IBLOCK_ID' => $arParams['IBLOCK_ID'],
    'IBLOCK_SECTION_ID' => $sectionId
]);

//Получили количество
var_dump($dbItems);


Но мне кажется слишком много кода, чтобы проверить количество товаров, да и по идее тут 2 обращения к базе, что не есть хорошо. Подскажите как это решить в 1 getList

По идее у них (Элемент инфоблока и раздела) должна быть связь, может как то через эту связь, что то типа такого есть

$dbItems = ElementTable::getCount([
    'filter' => [
        'IBLOCK_ID' => $arParams['IBLOCK_ID'],
        'SECTION.CODE' => 'test'
    ]
]);


Где можно сразу через связь фильтровать.
  • Вопрос задан
  • 307 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы