Browse Source

项目添加删除观察者,删除资产时把容器库,容器也删除

kely 7 months ago
parent
commit
dd6152639d

+ 6 - 0
app/Observers/AssetObserver.php

@@ -51,6 +51,12 @@ class AssetObserver
 
         $asset->plans()->delete();
 
+        foreach ($asset->library as $library){
+            $library->container()->delete();
+        }
+        $asset->library()->delete();
+
+
     }
 
     /**

+ 64 - 0
app/Observers/ProjectObsever.php

@@ -0,0 +1,64 @@
+<?php
+/**
+ * Created by IntelliJ IDEA.
+ * User: kelyliang
+ * Date: 2024/8/14
+ * Time: 下午 03:00
+ */
+
+namespace App\Observers;
+
+
+use App\Models\Project;
+
+class ProjectObsever
+{
+    /**
+     * Handle the Asset "created" event.
+     */
+    public function created(Project $project): void
+    {
+        //
+    }
+
+    /**
+     * Handle the Asset "updated" event.
+     */
+    public function updated(Project $project): void
+    {
+        //
+    }
+
+    /**
+     * Handle the Asset "deleted" event.
+     */
+    public function deleted(Project $project): void
+    {
+
+    }
+
+    public function deleting(Project $project): void
+    {
+        foreach ($project->library as $library){
+            $library->container()->delete();
+        }
+        $project->library()->delete();
+
+    }
+
+    /**
+     * Handle the Asset "restored" event.
+     */
+    public function restored(Project $project): void
+    {
+        //
+    }
+
+    /**
+     * Handle the Asset "force deleted" event.
+     */
+    public function forceDeleted(Project $project): void
+    {
+        //
+    }
+}

+ 3 - 0
app/Providers/EventServiceProvider.php

@@ -7,11 +7,13 @@ use App\Listeners\SendActionBrowserNotification;
 use App\Listeners\SendActionEmailNotification;
 use App\Models\Asset;
 use App\Models\Plan;
+use App\Models\Project;
 use App\Models\Requirement;
 use App\Models\RequirementGroup;
 use App\Models\Task;
 use App\Observers\AssetObserver;
 use App\Observers\PlanObserver;
+use App\Observers\ProjectObsever;
 use App\Observers\RequirementGroupObserver;
 use App\Observers\RequirementObserver;
 use App\Observers\TaskObserver;
@@ -47,6 +49,7 @@ class EventServiceProvider extends ServiceProvider
         Asset::observe(AssetObserver::class);
         Plan::observe(PlanObserver::class);
         RequirementGroup::observe(RequirementGroupObserver::class);
+        Project::observe(ProjectObsever::class);
     }
 
     /**