ragnar_ok
@ragnar_ok

Как избежать повторного вызова HighloadBlockTable::compileEntity?

Создал две HL-таблицы и думал, что связал их (один-ко-многим) свойством "Привязка к элементам highload-блока". Вопреки ожиданиям поле оказалось string. Содержит id:

'UF_PROPERTY' => string(1) "1" // id

Как избежать повторного вызова HighloadBlockTable::compileEntity, чтобы сделать выборку свойства из другой таблицы одним запросом? То есть вместо строки с id нужно получить сразу элементы из связанной таблицы.

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]
    ]);

//...
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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