Недокументированная связка ElementTable и getEntity

С документацией нового ядра D7 довольно всё печально, это общеизвестный факт и битрикс разработчикам младшего и среднего звена не всегда очевидно как с этим ядром работать. Не хватает примеров в описании методов.

Есть очень хорошая недокументированная связка. С помощью ElementTable::getEntity создаем объект Query. В качестве параметра он принимает объект сущности, относительно которой мы строим запрос используя методы \Bitrix\Main\Entity\Query

            // создаем объект Query
            $query = new \Bitrix\Main\Entity\Query(Bitrix\Iblock\ElementTable::getEntity());
            $query

 //\Bitrix\Main\Entity\Query::setSelect- не статический метод составляет список полей для оператора SELECT.
                ->setSelect(array("ID", "PREVIEW_PICTURE", "DETAIL_PICTURE","SORT"))
//\Bitrix\Main\Entity\Query::setFilter - не статический метод устанавливает список фильтров для оператора WHERE.
                ->setFilter(array("IBLOCK_ID" => '2',"ACTIVE" => 'Y'))
//\Bitrix\Main\Entity\Query::setOrder - не статический метод устанавливает список полей для оператора ORDER BY.
                ->setOrder(array("ID" => "ASC"))
//\Bitrix\Main\Entity\Query::setLimit - не статический метод устанавливает лимит для оператора LIMIT n.
                ->setLimit(50);
//exec — Выполнить внешнюю программу - exec() выполняет команду command.
            $ob = $query->exec();
//\Bitrix\Main\DB\Result::fetch - не статический метод получает строку из результата запроса и возвращает её в ассоциативном массиве с конвертированными данными или возвращает false при пустых данных.
            while($res = $ob->fetch())             {             } //принт получаемых данных [0] => Array ( [ID] => 4 [PREVIEW_PICTURE] => [DETAIL_PICTURE] => 47 [SORT] => 810 )

Ещё статьи:

31.07.2024 Нюансы продления лицензии на 3 и 6 месяцев от 12 месяцев
На маркетплейсе есть такая кнопка "купить продление", при нажатии на неё есть выпадающий список продолжительность (3 мес. самый дешовый вариант и 6 мес.).
У розничного пользователя такой кнопки, она есть под партнёрским аккаунтом разработчика. ID: 494

31.07.2024 Ошибка в блоке "Вы смотрели" на базе catalog.section
При создании блока "Вы смотрели" на базе catalog.section на детальной странице товара столкнулся с ошибкой, когда блок работал не корректно, и данные о просмотренных товарах не обновлялись. ID: 493

28.05.2024 cURL error 28 Connection timed out after 10001 milliseconds
Ошибка загрузки загрузки обновлений вордпресс. Не даёт закачать обновление на сайт, возможно есть какая-то информация в логах сервера. ID: 470

© 2015-2024 Web админ
Связаться по WhatsApp