]> _ Git - cubist_cms-back.git/commitdiff
wip #3753 @0.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 25 Nov 2020 20:28:19 +0000 (21:28 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 25 Nov 2020 20:28:19 +0000 (21:28 +0100)
src/app/Magic/Controllers/CubistMagicController.php
src/app/Magic/Models/CubistMagicAbstractModel.php

index 29e3a21e2058fc86306c6634ebbf5af0882df1cf..ffc71d9ef446577ebcb4c4d220a63acd5460cd89 100644 (file)
@@ -227,14 +227,11 @@ class CubistMagicController extends CubistCrudController
 
     protected function _forgetCache()
     {
-        $tags = [Menu::CACHE_TAG];
-        $model_instance = $this->getModelInstance();
-        $classes = array_merge([get_class($model_instance)], class_parents($model_instance));
-        foreach ($classes as $class) {
-            $tags[] = 'model_' . $class;
-        }
+        try {
+            $this->getModelInstance()->flushCache([Menu::CACHE_TAG]);
+        }catch (\Exception $e){
 
-        Cache::tags($tags)->flush();
+        }
     }
 
     public function index()
index 047f8f76cecfaa9b687d07a8d15e7b4fc313ccb1..73c913730bcb31d4ff6c17c33250b39399453b2a 100644 (file)
@@ -19,6 +19,7 @@ use GeneaLabs\LaravelModelCaching\Traits\Cachable;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Support\Carbon;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Str;
 use Spatie\MediaLibrary\HasMedia;
 use Spatie\MediaLibrary\InteractsWithMedia;
@@ -610,4 +611,19 @@ class CubistMagicAbstractModel extends Model implements HasMedia
     {
         return new QueryBuilder($query);
     }
+
+    protected function finishSave(array $options)
+    {
+        parent::finishSave($options);
+        $this->flushCache();
+    }
+
+    public function flushCache($tags = [])
+    {
+        $classes = array_merge([get_class($this)], class_parents($this));
+        foreach ($classes as $class) {
+            $tags[] = 'model_' . $class;
+        }
+        Cache::tags($tags)->flush();
+    }
 }