- $cacheKey = $this->cachePrefix . $key;
- $this->cache->forget($cacheKey);
- if (isset($this->localCache[$key])) {
- unset($this->localCache[$key]);
+ $query = Setting::query();
+
+ if ($cacheCategory === 'app') {
+ $query->where('setting_key', 'not like', 'user:%');
+ } else {
+ $query->where('setting_key', 'like', $cacheCategory . ':%');
+ }
+ $settings = $query->toBase()->get();
+
+ if (!isset($this->localCache[$cacheCategory])) {
+ $this->localCache[$cacheCategory] = [];
+ }
+
+ foreach ($settings as $setting) {
+ $value = $setting->value;
+
+ if ($setting->type === 'array') {
+ $value = json_decode($value, true) ?? [];
+ }
+
+ $this->localCache[$cacheCategory][$setting->setting_key] = $value;