Выборка пользователей

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

Октябрь 10, 2017

Теги: Пользователи, ORM

Выборка трех последних авторизовавшихся пользователей на сайте


$result = \Bitrix\Main\UserTable::getList(array(

    
'select' => array('ID','SHORT_NAME'), // выберем идентификатор и генерируемое (expression) поле SHORT_NAME
    
'order' => array('LAST_LOGIN'=>'DESC'), // все группы, кроме основной группы администраторов,
    
'limit' => 3
));

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

Результаты могут включать "UF_" поля, но по умолчанию они не возвращаются, их надо специально указывать:


$user = \Bitrix\Main\UserTable::getList(array(

    
'filter' => array(
        
'=ID' => $userId,
    ),
    
'limit'=>1,
    
'select'=>array('*','UF_TYPE'),
))->
fetch();

/*
Array
(
    [ID] => 1
    [LOGIN] => myadmin
    [PASSWORD] => }Ki4\I5ac981ef6f17b8b47717132e5fadc719b1
    [EMAIL] => werwerwerwerwertrg@bk.ru
    [ACTIVE] => Y
    [DATE_REGISTER] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2014-12-10 15:44:35.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [LAST_LOGIN] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2020-06-09 12:09:05.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [LAST_ACTIVITY_DATE] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2020-06-05 21:53:34.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [TIMESTAMP_X] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2020-03-11 18:15:00.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [NAME] => Сергей
    [SECOND_NAME] => 
    [LAST_NAME] => Эстрин
    [TITLE] => 
    [EXTERNAL_AUTH_ID] => 
    [XML_ID] => 
    [BX_USER_ID] => c9d4a335e93a85d60138096fea249646
    [CONFIRM_CODE] => 
    [LID] => s1
    [LANGUAGE_ID] => 
    [TIME_ZONE_OFFSET] => 
    [PERSONAL_PROFESSION] => 
    [PERSONAL_PHONE] => 
    [PERSONAL_MOBILE] => 
    [PERSONAL_WWW] => 
    [PERSONAL_ICQ] => 
    [PERSONAL_FAX] => 
    [PERSONAL_PAGER] => 
    [PERSONAL_STREET] => 
    [PERSONAL_MAILBOX] => 
    [PERSONAL_CITY] => 
    [PERSONAL_STATE] => 
    [PERSONAL_ZIP] => 
    [PERSONAL_COUNTRY] => 0
    [PERSONAL_BIRTHDAY] => Bitrix\Main\Type\Date Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2016-03-16 00:00:00.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [PERSONAL_GENDER] => 
    [PERSONAL_PHOTO] => 
    [PERSONAL_NOTES] => 
    [WORK_COMPANY] => ООО Проырлвропао
    [WORK_DEPARTMENT] => с 14.00 до 2.00, обед с 17.00 до 21.00
    [WORK_PHONE] => +7 495 123-45-67
    [WORK_POSITION] => 
    [WORK_WWW] => 
    [WORK_FAX] => 
    [WORK_PAGER] => 
    [WORK_STREET] => Тверской бульвар 35
    [WORK_MAILBOX] => 
    [WORK_CITY] => Москва
    [WORK_STATE] => Область
    [WORK_ZIP] => 1231223234
    [WORK_COUNTRY] => 0
    [WORK_PROFILE] => 
    [WORK_LOGO] => 127
    [WORK_NOTES] => Клуб на Тверском бульваре. 
    [ADMIN_NOTES] => 
    [UF_TWITTER] => 
    [UF_TYPE] => 6
    [UF_AMENITIES] => Array
        (
            [0] => 29
            [1] => 30
            [2] => 31
        )

    [UF_LEVEL] => 
    [UF_GROWTH] => 
    [UF_WEIGHT] => 
    [UF_COORD] => 
)
*/

Способ выборки пользователей определенной группы (используется UserGroupTable, а не UserTable):


$result = \Bitrix\Main\UserGroupTable::getList(array(

    
'order' => array('USER.LAST_LOGIN'=>'DESC'),
    
'filter' => array(
        
'USER.ACTIVE'    => 'Y',
        
'GROUP_ID' => 10,
    ),
    
'select' => array(
        
'ID'=>'USER.ID'
        
'PERSONAL_PHOTO'=>'USER.PERSONAL_PHOTO'
        
'PERSONAL_GENDER'=>'USER.PERSONAL_GENDER'
        
'NAME'=>'USER.NAME'
        
'LAST_NAME'=>'USER.LAST_NAME'
        
'PERSONAL_CITY' => 'USER.PERSONAL_CITY'
        
'UF_LEVEL'=>'USER.UF_LEVEL'
        
'UF_SEF_NAME'=>'USER.UF_SEF_NAME'
    
),
));
while (
$user $result->fetch()) 
{
    
print_r($user);
}

См. также:

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