Нестандартные сортировки в 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);
}

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