Переглянути джерело

fix: 修复save() 对未变更数据不触发 onAfterWrite

runphp 1 місяць тому
батько
коміт
03360fc9ac
1 змінених файлів з 5 додано та 3 видалено
  1. 5 3
      src/ExtensionManager.php

+ 5 - 3
src/ExtensionManager.php

@@ -346,10 +346,12 @@ class ExtensionManager extends Service
         if ($extension->isEmpty()) {
             $data['status'] = !empty($data['is_core']) ? 3 : 1; // 核心扩展默认启用,其余默认未安装
             $extension->save($data);
-            return true;
+        } else {
+            unset($data['id']);
+            $extension->save($data);
         }
-        unset($data['id']);
-        $extension->save($data);
+        // save() 对未变更数据不触发 onAfterWrite,这里显式清理单个扩展信息缓存
+        Cache::delete(sprintf(ExtensionModel::EXTENSION_INFO_CACHE_KEY, $extensionID));
         return true;
     }