Март 20, 2020
Работа с элементами инфоблоков средствами ORM.
Для работы с элементами инфоблоков через ORM необходимо сначала задать поле "Символьный код API" в настройках инфоблока, после чего, если, например, символьный код инфоблока равен "MyIblock" мы сможем работать с инфоблоком через класс "\Bitrix\Iblock\Elements\ElementMyIblockTable". Также возможен вариант получения класса для работы с инфоблоком по его ID с последующей подстановкой переменной вместо класса:
Получение объекта элемента инфоблока с идентификатором в переменной $elementId (с получением значений свойств с кодами "MY_PROP", "MY_LINK_PROP"):
Получение массива (или т.н. "коллекции") элементов инфоблока по фильтру:
Получение полей из объекта элемента инфоблока (необходимо указывать в "select" при выборке):
Получение символьного кода связанного раздела и вышележащего раздела:
Получение пути из символьных кодов раздела:
$curSection=$element->getIblockSection(); // 'IBLOCK_SECTION.CODE','IBLOCK_SECTION.PARENT_SECTION.CODE','IBLOCK_SECTION.PARENT_SECTION.PARENT_SECTION.CODE' и т.д.
$sectionPath = $curSection->getCode();
while($curSection=$curSection->getParentSection())
$sectionPath = $curSection->getCode().'/'.$sectionPath;
Получение значения свойства с кодом "MY_PROP" типа "Строка", немножественное:
Получение значений свойства с кодом "MY_PROP" типа "Строка", множественное, и сборка их в массив:
Получение значения поля связанного через свойство типа "Привязка к элементам" элемента с кодом "MY_LINK_PROP", немножественного:
Получение значений полей связанных через свойство типа "Привязка к элементам" элементов, множественного:
Только получение количества элементов по фильтру (а данном примере со значением свойства "AUTHOR" равным 12):