Нестандартные сортировки в ORM/хайлоадблоках

Модуль расширенного управления меню для битрикс

Октябрь 31, 2018

Теги: Хайлоадблоки, ORM, Хранение данных, Как это сделать?

Использование сложных сортировок в ORM (случайная сортировка, сортировка с пустыми значениями в конце и т.д.).

Сортировка по полю "UF_SORT" в прямом порядке ("ASC") с пустыми значениями в конце (аналог "ASC,NULLS" в старом api инфоблоков):  


$result $entityDataClass::getList(array(

    
'runtime' => array(new \Bitrix\Main\Entity\ExpressionField(
        
'ISSORTNULL',
        
'ISNULL(-%s)',
        [
'UF_SORT']
    )),        
    
'order' => array('ISSORTNULL'=>'ASC','UF_SORT'=>'ASC'),
    
'limit' => 10,
));

while (
$arRow $result->fetch())
{
    
print_r($arRow);
}

Сортировка в случайном порядке:


$result $entityDataClass::getList(array(

    
'runtime' => array('RAND'=>array('data_type' => 'float''expression' => array('RAND()'))),        
    
'order' => array('RAND'=>'ASC'),
    
'limit' => 10,
));

while (
$arRow $result->fetch())
{
    
print_r($arRow);
}

← Переход к списку