Задача: Всем старым пользователям сайта нужно заменить поле LOGIN из EMAIL пользователя.
Почему-то метод CUser::Update не хочет этого делать, если указать только обновление поля LOGIN.
Пример не работоспособного скрипта: проходим по всем пользователям с помощью метода
CUser::GetList и в цикле, с помощью CUser::Update пытаемся перезаписать логин из электронной почты пользователя.
Почему это не срабатывает разобраться не удалось (в ядро особо не лазил, что бы разобраться, если кто-то знает напишите)
Пример работоспособного кода: просто, добавил перезапись EMAIL поля из самого себя и все сработало:
Почему-то метод CUser::Update не хочет этого делать, если указать только обновление поля LOGIN.
Пример не работоспособного скрипта: проходим по всем пользователям с помощью метода
CUser::GetList и в цикле, с помощью CUser::Update пытаемся перезаписать логин из электронной почты пользователя.
Код |
---|
$USER_UPD = new CUser; $rsUsers = CUser::GetList( ($by = "ID"), ($order = "desc"), false ); while ($arUser = $rsUsers->Fetch()) { $fields = array( "LOGIN" => $arUser['EMAIL'] ); $USER_UPD->Update($arUser['ID'], $fields); } |
Почему это не срабатывает разобраться не удалось (в ядро особо не лазил, что бы разобраться, если кто-то знает напишите)
Пример работоспособного кода: просто, добавил перезапись EMAIL поля из самого себя и все сработало:
Код |
---|
$USER_UPD = new CUser; $rsUsers = CUser::GetList( ($by = "ID"), ($order = "desc"), false ); while ($arUser = $rsUsers->Fetch()) { $fields = array( "EMAIL" => $arUser['EMAIL'], "LOGIN" => $arUser['EMAIL'] ); $USER_UPD->Update($arUser['ID'], $fields); } |
Изменено: Михаил Базаров - 05.04.2023 14:52:12