- Модуль: catalog
- Путь к файлу: ~/bitrix/modules/catalog/lib/model/entity.php
- Класс: BitrixCatalogModelEntity
- Вызов: Entity::delete
static function delete($id): ORMDataDeleteResult
{
$result = new ORMDataDeleteResult();
$entity = static::getEntity();
if (Event::existEventHandlers($entity, ORMDataDataManager::EVENT_ON_BEFORE_DELETE))
{
$event = new Event(
$entity,
ORMDataDataManager::EVENT_ON_BEFORE_DELETE,
['id' => $id]
);
$event->send();
if ($event->getErrors($result))
return $result;
}
if (Event::existEventHandlers($entity, ORMDataDataManager::EVENT_ON_DELETE))
{
$event = new Event(
$entity,
ORMDataDataManager::EVENT_ON_DELETE,
['id' => $id]
);
$event->send();
unset($event);
}
if ($entity->fieldsCount > 0 && !isset($entity->cache[$id]))
$entity->loadEntityCacheItem($id);
$result = $entity->getTablet()->delete($id);
$success = $result->isSuccess();
if ($success)
$entity->expireEntityCacheItem((int)$id);
if (Event::existEventHandlers($entity, ORMDataDataManager::EVENT_ON_AFTER_DELETE))
{
$event = new Event(
$entity,
ORMDataDataManager::EVENT_ON_AFTER_DELETE,
['id' => $id, 'success' => $success]
);
$event->send();
unset($event);
}
if ($success)
static::runDeleteExternalActions($id);
unset($success, $entity);
return $result;
}