ORM Bitrix связь нескольких(трех, четырёх и более) таблиц. Как реализовать на getList или Query?

Доброго времени суток, казалось бы вещь с которой сталкивается большое количество программистов претендующих на middle разработчика 1С-Битрикс, тем не менее простой поиск в Яндекс и Google к результатам не привёл - требуется связать 4 таблицы используя описание ORM Bitrix, а затем извлечь данные используя getList или Query.
Как описать связи в классе сущностей и как составить сам запрос? Нашёл пример где описывается связь многие к многим двух таблиц через промежуточную таблицу используя связывание через Entity\ReferenceField, при этом интересует как описать связь и построить запрос если таблицы связаны по цепочке, например: континент, страна, город, улица. Не то чтобы я писал КЛАДР, просто для примера привёл таблицы.
  • Вопрос задан
  • 595 просмотров
Пригласить эксперта
Ответы на вопрос 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Можно рассмотреть на примере того что есть в ядре:
  • \Bitrix\Catalog\ProductTable - bitrix/modules/catalog/lib/product.php
  • \Bitrix\Iblock\ElementTable - bitrix/modules/iblock/lib/elementtable.php
  • \Bitrix\Iblock\SectionTable - bitrix/modules/iblock/lib/sectiontable.php

Откройте классы, посмотрите как описаны сущности и их связи.
getList на выборку полей сразу из трёх сущностей:
\Bitrix\Catalog\ProductTable::getList([
	"select" => [
		"ID", //id товара
		"IBLOCK_ELEMENT.NAME", //Название товара из элемента инфоблока
		"IBLOCK_ELEMENT.IBLOCK_SECTION.NAME", //Название раздела товара
	]
])

Более подробно вопрос описания отношений между сущностями рассмотрен в соответствующем разделе документации.
Обязательно вникните в то, что там описано в качестве примера, то какие связи должны быть между сущностями, а у же потом смотрите, как эти связи описаны кодом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы