/** * Sign on model events. */ public static function bootNodeTrait() { static::saving(function ($model) { $model->getConnection()->beginTransaction(); return $model->callPendingAction(); }); static::saved(function ($model) { $model->getConnection()->commit(); }); static::deleting(function ($model) { $model->getConnection()->beginTransaction(); // We will need fresh data to delete node safely $model->refreshNode(); }); static::deleted(function ($model) { $model->deleteDescendants(); $model->getConnection()->commit(); }); if (static::usesSoftDelete()) { static::restoring(function ($model) { $model->getConnection()->beginTransaction(); static::$deletedAt = $model->{$model->getDeletedAtColumn()}; }); static::restored(function ($model) { $model->restoreDescendants(static::$deletedAt); $model->getConnection()->commit(); }); } }
/** * Sign on model events. */ protected static function signOnEvents() { static::saving(function (Node $model) { return $model->callPendingAction(); }); static::deleting(function (Node $model) { // We will need fresh data to delete node safely $model->refreshNode(); }); static::deleted(function (Node $model) { $model->deleteDescendants(); }); if (static::usesSoftDelete()) { static::restoring(function (Node $model) { static::$deletedAt = $model->{$model->getDeletedAtColumn()}; }); static::restored(function (Node $model) { $model->restoreDescendants(static::$deletedAt); }); } }