Как в битриксе используя ORM получить значение из нескольких сущностей?

Добрый день!

Столкнулся с задачей по выборке значений из двух различный сущностей (сделки и контакта), но не могу понять как это сделать.

Пример выборки данных из сделки:
use Bitrix\Crm\DealTable;
use Bitrix\Crm\ContactTable;

$arDeal = DealTable::getList(array(
  'select' => array('CONTACT_ID'),
  'filter' => array('CREATED_BY_ID'=>1)
))->fetchAll();


Не знаю как можно выполнить в одном запросе добавление в массив $arDeal значение REFERAL (источник) из сущности контакты. Заранее спасибо за помощь.
  • Вопрос задан
  • 1200 просмотров
Решения вопроса 1
winer
@winer
занимаюсь разработкой сайтов на 1c-bitrix
Тут можно почитать про связи между ORM сущностями.

Если сущности, о которых вы спрашиваете, связаны, то делается это довольно просто.

Допустим вот так описано поле по которому идет связь между сущностью Book и Author внутри класса BookTable:
new Entity\ReferenceField(
    'AUTHOR',
    'SomePartner\MyBooksCatalog\Author',
    array('=this.AUTHOR_ID' => 'ref.ID'),
    array('join_type' => 'LEFT')
)

тогда чтобы выбрать какое либо поле из сущности author надо в getList добавить Author.<Код поля>. например так:
BookTable::getList(array(
    'select' => array(
        'TITLE',
        'AUTHOR_NAME' => 'AUTHOR.NAME',
        'AUTHOR_LAST_NAME' => 'AUTHOR.LAST_NAME'
    )
));

Пример взят из статьи по ссылке приведенной выше.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы