From 7707651d1c8e97b921fa4f189171878c366f932a Mon Sep 17 00:00:00 2001 From: Alex Orosciuc Date: Wed, 18 Sep 2024 19:54:06 +0100 Subject: [PATCH] Remove all revisions when revisionable model's record is permanently removed --- src/Database/Traits/Revisionable.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Database/Traits/Revisionable.php b/src/Database/Traits/Revisionable.php index 9dcdc459..938310ef 100644 --- a/src/Database/Traits/Revisionable.php +++ b/src/Database/Traits/Revisionable.php @@ -105,7 +105,8 @@ public function revisionableAfterDelete() class_uses_recursive(get_class($this)) ); - if (!$softDeletes) { + if (!$softDeletes || $softDeletes && !$this->isSoftDelete()) { + $this->revisionableFullCleanUp(); return; } @@ -155,6 +156,16 @@ protected function revisionableCleanUp() } } + /* + * Deletes all revision records. + */ + protected function revisionableFullCleanUp() + { + $relation = $this->getRevisionHistoryName(); + $relationObject = $this->{$relation}(); + $relationObject->delete(); + } + protected function revisionableGetCastType($attribute) { if (in_array($attribute, $this->getDates())) {