Битрикс. Вывод элементов инфоблока с множественным свойством и выводом в JSON

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

		
		<?php

$rsElement = Iblock\Elements\ElementСимольныйкодинфоблокаTable::getList([
    'select' => [
        'ID',
        'NAME',
        'PARTNERS.FILE',
        'PARTNERS.FILE.DESCRIPTION',
    ],
]);

$arElements = [];

// Адрес + описание файла
function getPropertyFileSrcUrl($arPropertyFile) {
    return [
        "img"  => SITE_DIR . 'upload/' . $arPropertyFile->getSubdir() . '/' . $arPropertyFile->getFileName(),
        "name" => $arPropertyFile->getDescription(), 
    ];
}

while ($obElement = $rsElement->fetchObject())
{
    $arMorePartners = [];

    if ($obElement->getPartners()) {
        foreach ($obElement->getPartners()->getAll() as $fileProperty) {
            $file = $fileProperty->getFile();
            if ($file) {
                $arMorePartners[] = getPropertyFileSrcUrl($file);
            }
        }
    }

    $arElements[] = [
        'id'       => $obElement->getId(),
        'name'     => $obElement->getName(),
        'partners' => $arMorePartners,
    ];
}

echo json_encode($arElements, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

?>	
	

В итоге получим такой вывод:

		
		[
  {
    "id": 3,
    "name": "Тапок A",
    "partners": [
      {
        "img": "/upload/iblock/7c2/filename.png",
        "name": "Какое-то название"
      }
    ]
  }
]	
	

Количество просмотров: 1


Понравилась статья?

Возврат к списку