Создал две HL-таблицы и думал, что связал их (один-ко-многим) свойством "Привязка к элементам highload-блока". Вопреки ожиданиям поле оказалось [FONT=Courier New]string[/FONT]. Содержит [FONT=Courier New]id[/FONT]:
[CODE]'UF_PROPERTY' => string(1) "1" // id[/CODE]Как избежать повторного вызова [FONT=Courier New]HighloadBlockTable::compileEntity[/FONT], чтобы сделать выборку свойства из другой таблицы одним запросом? То есть вместо строки с [FONT=Courier New]id [/FONT]нужно получить сразу элементы из связанной таблицы.
[CODE]use Bitrix\Highloadblock;
$entity = Highloadblock\HighloadBlockTable::compileEntity('Inversed');
$dataClass = $entity->getDataClass();
$result = $dataClass::getList();
while ($dataArray = $result->fetch()) {
$idArray[] = $dataArray['UF_PROPERTY']['ID'];
}
$entity = Highloadblock\HighloadBlockTable::compileEntity('Mapped');
$dataClass = $entity->getDataClass();
$result = $dataClass::getList([,
'filter' => ['ID' => $idArray]
]);
//...
[/CODE]
[CODE]'UF_PROPERTY' => string(1) "1" // id[/CODE]Как избежать повторного вызова [FONT=Courier New]HighloadBlockTable::compileEntity[/FONT], чтобы сделать выборку свойства из другой таблицы одним запросом? То есть вместо строки с [FONT=Courier New]id [/FONT]нужно получить сразу элементы из связанной таблицы.
[CODE]use Bitrix\Highloadblock;
$entity = Highloadblock\HighloadBlockTable::compileEntity('Inversed');
$dataClass = $entity->getDataClass();
$result = $dataClass::getList();
while ($dataArray = $result->fetch()) {
$idArray[] = $dataArray['UF_PROPERTY']['ID'];
}
$entity = Highloadblock\HighloadBlockTable::compileEntity('Mapped');
$dataClass = $entity->getDataClass();
$result = $dataClass::getList([,
'filter' => ['ID' => $idArray]
]);
//...
[/CODE]