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()
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;
{
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();
+ }
}