ElementCustomTable - uniqcle/Bitrix GitHub Wiki
Получение элементов и свойств в виде массива
use \Bitrix\Main\ObjectPropertyException,
\Bitrix\Main\ArgumentException,
\Bitrix\Main\SystemException;
use Models\Lists\CarsPropertyValuesTable as CarsTable;
try{
$arSelect = array("ID",
'IBLOCK_ID',
"NAME",
"ENGINE_VOLUME_" => "ENGINE_VOLUME",
'MANUFACTURER_ID_' => 'MANUFACTURER_ID',
'CITY_ID_' => 'CITY_ID'
);
$arFilter = array(
"ACTIVE" => "Y",
);
$cars = \Bitrix\Iblock\Elements\ElementAutoTable::getList(array(
'select' => $arSelect,
'filter' => $arFilter,
'order' => array("ACTIVE_FROM" => 'DESC'),
//'offset' => $offset,
'limit' => 10,
'count_total' => true,
))->fetchAll();
// получение элементов
foreach($cars as $car){
debug($car);
// получение свойств при привязанных элементах в виде списка
$markaProperty = \Bitrix\Iblock\Elements\ElementMarkiTable::getByPrimary($car['MANUFACTURER_ID_VALUE'], array(
'select' => array('ID', 'NAME', 'COUNTRY_' => 'COUNTRY')
))->fetch();
debug($markaProperty);
$cityProperty = \Bitrix\Iblock\Elements\ElementCitiesTable::getByPrimary($car['CITY_ID_VALUE'], array(
'select' => array('ID', 'NAME')
))->fetch();
debug($cityProperty);
}
} catch ( ObjectPropertyException | ArgumentException | SystemException $e){
$errorMsg = $e -> getMessage();
debug($errorMsg);
}
//Array
//(
// [ID] => 45
// [IBLOCK_ID] => 22
// [NAME] => BMW X5
// [ENGINE_VOLUME_IBLOCK_ELEMENT_ID] => 45
// [ENGINE_VOLUME_VALUE] => 2.4
// [MANUFACTURER_ID_IBLOCK_ELEMENT_ID] => 45
// [MANUFACTURER_ID_VALUE] => 41
// [CITY_ID_IBLOCK_ELEMENT_ID] => 45
// [CITY_ID_VALUE] => 37
//)
//Array
//(
// [ID] => 41
// [NAME] => BMW
// [COUNTRY_IBLOCK_ELEMENT_ID] => 41
// [COUNTRY_VALUE] => Германия
//)
//Array
//(
// [ID] => 37
// [NAME] => Москва
//)
D7. Получение элементов и их свойств в виде объектов
use \Bitrix\Main\ObjectPropertyException,
\Bitrix\Main\ArgumentException,
\Bitrix\Main\SystemException;
try{
$arSelect = array("ID", 'IBLOCK_ID',
"NAME",
'MODEL', // свойство строка в одно слово
'ENGINE_VOLUME', // свойство строка в 2 слова
'LUGGAGE.ITEM', // список
'DRIVERS.ITEM', // список множествен.
'PASSANGERS.ELEMENT', // привязан. элементы
'MANUFACTURER_ID.ELEMENT', // привязка элемента не множествен.
'CITY_ID.ELEMENT'
);
// 1 вар.
$iblockId = 22;
$iblock = \Bitrix\Iblock\Iblock::wakeUp($iblockId);
$cars = $iblock->getEntityDataClass()::getList(array(
'select' => $arSelect,
'filter' => ["ACTIVE" => "Y"],
'order' => array("ACTIVE_FROM" => 'DESC'),
//'offset' => $offset,
'limit' => 10,
'count_total' => true,
))->fetchCollection();
//2 вар.
$cars = \Bitrix\Iblock\Elements\ElementAutoTable::getList(array(
'select' => $arSelect,
'filter' => ["ACTIVE" => "Y"],
'order' => array("ACTIVE_FROM" => 'DESC'),
//'offset' => $offset,
'limit' => 10,
'count_total' => true,
))->fetchCollection();
foreach($cars as $car){
debug($car->getId());
debug($car->getName());
// Простые свойства
debug($car->getModel()->getValue()); //строка
debug($car->getEngineVolume()->getValue()); //строка
// не множественный список
debug($car->getLuggage()->getItem()->getId());
debug($car->getLuggage()->getItem()->getValue());
// множественный список
foreach($car->getDrivers()->getAll() as $driver):
debug($driver->getItem()->getId());
debug($driver->getItem()->getXmlId());
debug($driver->getItem()->getValue());
endforeach;
//не множественное cвязанные элементы
$markaObj = $car->getManufacturerId()->getElement();
debug($markaObj->getId());
debug($markaObj->getName());
// множественные cвязанные элементы
foreach($car->getPassangers()->getAll() as $passanger):
debug($passanger->getElement()->getId());
debug($passanger->getElement()->getName());
endforeach;
}
} catch ( ObjectPropertyException | ArgumentException | SystemException $e){
$errorMsg = $e -> getMessage();
debug($errorMsg);
}
https://nikaverro.ru/blog/bitrix/infoblok-api-d7/