Задать вопрос
@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]
    ]);

//...
  • Вопрос задан
  • 140 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия DevOps-инженер + ИИ
    5 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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