Join в ORM Bitrix D7

В данном примере хочу показать, как вывести имя секции использую встроенную возможность битрикса на ORM.

Воспользуемся методом registerRuntimeField. Создаем новый Reference. Указываем псевдоним EXTENDED_SECTION (или любой другой на ваше усмотрение). Далее подключаем сущность SectionTable. и джойним поле IBLOCK_SECTION_ID сущности ElementTable с ID сущности SectionTable.

$query = \Bitrix\Iblock\ElementTable::query()
            ->registerRuntimeField('', (new Reference(
                'EXTENDED_SECTION',
                SectionTable::class,
                Join::on('this.IBLOCK_SECTION_ID', 'ref.ID')
            )))
            ->addSelect('EXTENDED_SECTION.NAME','SECTION_NAME')
                ->addOrder('ID', 'ASC')
                ->where('ID', 1);
        $items = $query->fetchAll();

Подробная статья про Bitrix ORM D7 — https://webdevprompt.com/2021/07/28/bitrix-orm-object-relational-mapping/

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *