- Главная
- Сниппеты Битрикс d7
Базовые операции с хайлоадблоками
Октябрь 19, 2017
Теги:
Хайлоадблоки, ORM, Хранение данных
Работа с хайлоадблоками в битрикс - получение объекта, выборка данных, добавление, обновление, удаление.
Подключение модуля:
\Bitrix\Main\Loader::IncludeModule("highloadblock");
Получение объекта сущности хайлоадблока (Entity Data Class) по ID хайлоадблока:
$hlblock = \Bitrix\Highloadblock\HighloadBlockTable::getById($HLBLOCK_ID)->fetch();
$entity = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hlblock);
$entityDataClass = $entity->getDataClass();
Получение ID хайлоадблока по названию сущности:
$result = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter'=>array('=NAME'=>"MyEntityName")));
if($row = $result->fetch())
{
$HLBLOCK_ID = $row["ID"];
}
Выборка данных по фильтру:
$result = $entityDataClass::getList(array(
"select" => array("*"),
"order" => array("ID"=>"DESC"),
"filter" => Array("UF_USER_ID"=>4),
));
while ($arRow = $result->Fetch())
{
print_r($arRow);
}
Выборка данных по фильтру с указанием максимального количества:
$result = $entityDataClass::getList(array(
"select" => array("ID","UF_URL"),
"order" => array("UF_USER_ID"=>"ASC"),
"filter" => Array("UF_USER_ID"=>4),
"limit" => 5,
));
while ($arRow = $result->Fetch())
{
print_r($arRow);
}
Получение количества элементов по фильтру:
$result = $entityDataClass::getList(array(
'select' => array('CNT'),
'filter' => array('UF_ACTIVE'=>true),
'runtime' => array(
new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)'),
),
));
if($arRow = $result->Fetch())
$count = $arRow['CNT'];
Использование ShortHand-функции для выборки элемента с идентификатором из переменной $ID:
$result = $entityDataClass::getById($ID);
if($arRow = $result->Fetch())
{
print_r($arRow);
}
Добавление элемента хайлоадблока:
$arFields = array (
'UF_USER_ID' => $userID,
);
$result = $entityDataClass::add($arFields);
if($result->isSuccess())
{
$ID = $result->getId(); // получаем ID созданного элемента хайлоадблока
}
else
{
$errors = $result->getErrorMessages(); // получаем сообщения об ошибках
/* $errors будет иметь следующий формат:
Array
(
[0] => The value of "Date" is not a valid date or time.<br>
)
*/
}
Обновление элемента хайлоадблока с идентификатором, содержащимся в переменной $ID:
$arFields = array (
'UF_USER_ID' => $userID,
);
$result = $entityDataClass::update($ID,$arFields);
if(!$result->isSuccess())
$errors = $result->getErrorMessages(); // получаем сообщения об ошибках
Удаление элемента хайлоадблока с идентификатором, содержащимся в переменной $ID:
$result = $entity_data_class::delete($ID);
if(!$result->isSuccess())
$errors = $result->getErrorMessages(); // получаем сообщения об ошибках
← Переход к списку