소스 검색

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;
     }