SubscribeTable::updateMulti()
Сигнатура
public static updateMulti(array<string|int, mixed> $primaries, array<string|int, mixed> $data[, bool $ignoreEvents = false ]) : UpdateResult
Параметры
$primaries
array<string|int, mixed>
$data
array<string|int, mixed>
$ignoreEvents
bool
= false
Возвращаемое значение
UpdateResult
Как применяется в SubscribeTable
SubscribeTable::updateMulti() — метод класса \Bitrix\Catalog\SubscribeTable модуля «Торговый каталог». Это ORM-сущность D7 (наследник DataManager): строки читаются как объекты EO_Subscribe, наборы — как EO_Subscribe_Collection. Метод достаётся SubscribeTable от DataManager::updateMulti: поведение общее для всех сущностей, а данные, поля и классы — свои.
Записывает одинаковые значения в несколько строк SubscribeTable сразу. Подходит для массовых правок — например, снять флаг у группы записей.
use Bitrix\Main\Loader;
use Bitrix\Catalog\SubscribeTable;
Loader::includeModule('catalog');
SubscribeTable::updateMulti([1, 2, 3], [
'DATE_FROM' => new \Bitrix\Main\Type\DateTime(),
'DATE_TO' => new \Bitrix\Main\Type\DateTime(),
'USER_CONTACT' => 'user_contact',
]);Поля сущности SubscribeTable
| Поле | Тип | Свойства |
|---|---|---|
ID | int | обязательное |
DATE_FROM | datetime | обязательное |
DATE_TO | datetime | необязательное |
USER_CONTACT | string | обязательное |
CONTACT_TYPE | int | обязательное |
USER_ID | int | необязательное |
USER | reference | |
ITEM_ID | int | обязательное |
PRODUCT | reference | |
IBLOCK_ELEMENT | reference | |
NEED_SENDING | bool | |
SITE_ID | int | обязательное |
Список — из описания класса в исходном коде; точный состав в вашей версии вернёт SubscribeTable::getEntity()->getFields().
Собственные методы SubscribeTable
checkPermissionSubscribe()Метод проверяет разрешение на подписку на товар.getContactTypes()Метод возвращает массив доступных типов и позволяет добавить тип с помощью события.onAddContactType()Обработчик onAddContactType. Добавление нового типа контакта.onIblockElementDelete()Обработчик onIblockElementDelete для удаления данных о подписке в случае удаления товара.onProductSetAvailableUpdate()Метод OnProductSetAvailableUpdate для отправки уведомления подписчикам о положительном изменении доступности.onProductUpdate()onSaleOrderSaved()Обработчик OnSaleOrderSaved для отписки при оформлении заказа.onUserDelete()Обработчик onUserDelete для изменения данных подписки при удалении пользователя.runAgentToSendNotice()Метод запускает агент для отправки уведомлений подписчикам.runAgentToSendRepeatedNotice()Метод запускает агент для отправки повторных уведомлений подписчикам.sendNotice()Функция агента. Получает необходимые данные и отправляет уведомления пользователям.sendRepeatedNotice()Функция агента. Получает необходимые данные и отправляет уведомления пользователям.
updateMulti() есть и у других классов модуля «Торговый каталог»: CatalogIblockTable, CatalogViewedProductTable, DiscountCouponTable, DiscountModuleTable, DiscountRestrictionTable, DiscountTable, ExtraTable, GroupAccessTable.
Исходный файл: source/catalog/lib/subscribe.php:1384

