Всем привет!
Столкнулся вот с какой проблемой. Пытаюсь сделать выборку - нужно получить все элементы инфоблока с группировкой по полю DATE_CREATE. Делаю на D7, вот код:
Но вот когда распечатываю $items у меня на выходе вот что:
То есть элементы то выбираются, но никакой группировки нет. Или я может что-то не понимаю. Подскажите пожалуйста, каким образом \Bitrix\Iblock\ElementTable::g etList делает группировку, и как я это могу увидеть?
Столкнулся вот с какой проблемой. Пытаюсь сделать выборку - нужно получить все элементы инфоблока с группировкой по полю DATE_CREATE. Делаю на D7, вот код:
Код |
---|
$dbItems = \Bitrix\Iblock\ElementTable::getList(array( //'order' => array('SORT' => 'ASC'), // сортировка //'order' => array(), 'select' => array('ID','NAME','DATE_CREATE','PREVIEW_TEXT','PREVIEW_PICTURE','IBLOCK_ID', 'SORT'), // выбираемые поля, без свойств. Свойства можно получать на старом ядре \CIBlockElement::getProperty 'filter' => array('IBLOCK_ID' => $this->arParams['IBLOCK_ID']), // фильтр только по полям элемента, свойства (PROPERTY) использовать нельзя 'group' => array('DATE_CREATE'), // группировка по полю, order должен быть пустой //'limit' => 1000, // целое число, ограничение выбираемого кол-ва 'offset' => 0, // целое число, указывающее номер первого столбца в результате 'count_total' => 1, // дает возможность получить кол-во элементов через метод getCount() 'runtime' => array(), // массив полей сущности, создающихся динамически 'data_doubling' => false, // разрешает получение нескольких одинаковых записей 'cache' => array( // Кеш запроса. Сброс можно сделать методом \Bitrix\Iblock\ElementTable::getEntity()->cleanCache(); 'ttl' => 3600, // Время жизни кеша 'cache_joins' => true // Кешировать ли выборки с JOIN ), )); $items = Array(); while ($arItem = $dbItems->fetch()){ $db_props = CIBlockElement::GetProperty($arItem['IBLOCK_ID'],$arItem['ID']); while($ar_props = $db_props->Fetch()){ $props = $ar_props; } $arItem['PROPS'] = $props; $items[] = $arItem; } |
Но вот когда распечатываю $items у меня на выходе вот что:
Код |
---|
Array( [0] => Array ( [ID] => 320 [NAME] => Новость 1 [DATE_CREATE] => Bitrix\Main\Type\DateTime Object ( [userTimeEnabled:protected] => 1 [value:protected] => DateTime Object ( [date] => 2021-08-08 15:14:10.000000 [timezone_type] => 3 [timezone] => Europe/Moscow ) ) [PREVIEW_TEXT] => Анонс новости 1 [PREVIEW_PICTURE] => 956 [IBLOCK_ID] => 4 [SORT] => 500 [PROPS] => Array ( [ID] => 26 [TIMESTAMP_X] => 2022-08-08 16:54:12 [IBLOCK_ID] => 4 [NAME] => Произвольный текст [ACTIVE] => Y [SORT] => 500 [CODE] => CUSTOMTEXT [DEFAULT_VALUE] => [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30[LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => 2062 [VALUE] => Мой произвольный текст [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => ) ) [1] => Array ( [ID] => 321 [NAME] => Новость 2 [DATE_CREATE] => Bitrix\Main\Type\DateTime Object ( [userTimeEnabled:protected] => 1 [value:protected] => DateTime Object ( [date] => 2022-08-08 15:14:10.000000 [timezone_type] => 3 [timezone] => Europe/Moscow ) ) [PREVIEW_TEXT] => Анонс новости 2 [PREVIEW_PICTURE] => 958 [IBLOCK_ID] => 4 [SORT] => 500 [PROPS] => Array ( [ID] => 26 [TIMESTAMP_X] => 2022-08-08 16:54:12 [IBLOCK_ID] => 4 [NAME] => Произвольный текст [ACTIVE] => Y [SORT] => 500 [CODE] => CUSTOMTEXT [DEFAULT_VALUE] => [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30[LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => [VALUE] => [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => ) ) [2] => Array ( [ID] => 322 [NAME] => Новость 3 [DATE_CREATE] => Bitrix\Main\Type\DateTime Object ( [userTimeEnabled:protected] => 1 [value:protected] => DateTime Object ( [date] => 2022-08-08 15:14:10.000000 [timezone_type] => 3 [timezone] => Europe/Moscow ) ) [PREVIEW_TEXT] => Анонс новости 3 [PREVIEW_PICTURE] => [IBLOCK_ID] => 4 [SORT] => 500 [PROPS] => Array ( [ID] => 26 [TIMESTAMP_X] => 2022-08-08 16:54:12 [IBLOCK_ID] => 4 [NAME] => Произвольный текст [ACTIVE] => Y [SORT] => 500 [CODE] => CUSTOMTEXT [DEFAULT_VALUE] => [PROPERTY_TYPE] => S [ROW_COUNT] => 1 [COL_COUNT] => 30[LIST_TYPE] => L [MULTIPLE] => N [XML_ID] => [FILE_TYPE] => [MULTIPLE_CNT] => 5 [TMP_ID] => [LINK_IBLOCK_ID] => 0 [WITH_DESCRIPTION] => N [SEARCHABLE] => N [FILTRABLE] => N [IS_REQUIRED] => N [VERSION] => 1 [USER_TYPE] => [USER_TYPE_SETTINGS] => [HINT] => [PROPERTY_VALUE_ID] => [VALUE] => [DESCRIPTION] => [VALUE_ENUM] => [VALUE_XML_ID] => [VALUE_SORT] => ) ) ) |
То есть элементы то выбираются, но никакой группировки нет. Или я может что-то не понимаю. Подскажите пожалуйста, каким образом \Bitrix\Iblock\ElementTable::g etList делает группировку, и как я это могу увидеть?