- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Model/FieldContentTypeTable.php
- Класс: Bitrix\Crm\Model\FieldContentTypeTable
- Вызов: FieldContentTypeTable::loadForMultipleItems
static function loadForMultipleItems(int $entityTypeId, array $itemIds): array
{
\Bitrix\Main\Type\Collection::normalizeArrayValuesByInt($itemIds);
if (empty($itemIds))
{
return [];
}
$itemsToLoad = [];
foreach ($itemIds as $itemId)
{
if (!isset(self::$cache[$entityTypeId][$itemId]))
{
$itemsToLoad[$itemId] = $itemId;
}
}
if (!empty($itemsToLoad))
{
$dbResult =
self::query()
->setSelect(['ENTITY_ID', 'FIELD_NAME', 'CONTENT_TYPE_ID'])
->where('ENTITY_TYPE_ID', $entityTypeId)
->whereIn('ENTITY_ID', $itemsToLoad)
->exec()
;
self::$cache[$entityTypeId] ??= [];
while ($row = $dbResult->fetchObject())
{
self::$cache[$entityTypeId][$row->getEntityId()][$row->getFieldName()] = (int)$row->getContentTypeId();
}
}
return array_filter(
self::$cache[$entityTypeId],
fn(int $itemId) => in_array($itemId, $itemIds, true),
ARRAY_FILTER_USE_KEY,
);
}