Главная Сниппеты Битрикс 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 (); // получаем сообщения об ошибках
← Переход к списку
© Сергей Эстрин, 2015-2024