В общем, данный код выполняет выбор элементов инфоблока, получает множественное свойство (файл). Потом для каждого элемента формируется массив данных, включая ссылки на загруженные файлы, после чего результат конвертируется в 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": "Какое-то название"
}
]
}
]
Количество просмотров: 100