@bitrix0ID

Почему не работает фильтр «PROPERTY_*»?

Почему может не работать "PROPERTY_*" в фильтре для CIBlockElement::getList? Делаю так:

CIBlockElement::getList(
    ['SORT' => 'ASC'],
    [
        'IBLOCK_ID' => 48,
        {другое условие}
    ],
    false, false,
    ['ID', 'IBLOCK_ID', 'PROPERTY_*']
)->getNext();


Ни одно свойство не загружается...
  • Вопрос задан
  • 36 просмотров
Решения вопроса 1
@ivashjke
PHP
у вас PROPERTY_* не в фильтре а в селекте
SORT => ASC вообще нет смысла в фильтр вставлять, потому что это сортировка
и если хотите получить таким образом все свойства и если используете GetNext()
то свойства можно будет получить только через ->GetProperties(); (а поля через GetFields())
т.к. на выходе GetNext() или GetNextElement() - объект

можно так написать
$dbData = CIBlockElement::getList(
['SORT' => 'ASC'],
[
'IBLOCK_ID' => 48,
{другое условие}
],
false, false,
['ID', 'IBLOCK_ID', 'PROPERTY_*']
);
while ($res = $dbData->Fetch()) {
var_dump($res) - тут будут все доступные свойства и поля элемента
}
если через GetNext
while ($res = $dbData->GetNext()) {
$props = $res->GetProperties() - тут будут все доступные свойства
$fields = $res->GetFields() - тут поля
только если вам не нужны всякие XML_ID то быстрее отработает вариант с Fetch()
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@rustam_kuliev88
Попробуйте так

array(
        'SORT' => 'ASC',
        'IBLOCK_ID' => 48,
        {другое условие}
    ),
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы