Browse Source

children_count

peterguo 1 month ago
parent
commit
521080653b
2 changed files with 4 additions and 9 deletions
  1. 3 8
      app/Http/Controllers/API/FolderController.php
  2. 1 1
      routes/api.php

+ 3 - 8
app/Http/Controllers/API/FolderController.php

@@ -26,22 +26,18 @@ class FolderController extends Controller
     /**
      * Display a listing of the resource.
      */
-    public function tree(string $objectType, string $objectId)
+    public function tree(string $objectType, string $objectId, $parentFolderId = 0)
     {
         $folderObjectType = FolderObjectType::from($objectType);
 
         $object=$folderObjectType->modelBuilderAllowed()->with(['library'])->findOrFail($objectId);
 
-        $folders = Folder::query()
+        $folders = Folder::withCount('children')
             ->where([
                 'object_type' => $objectType,
                 'object_id' => $objectId,
             ])
-            //            ->when(request("parent_id", 0) > 0, function ($query) {
-            //                return $query->where("path", "like", "%," . \request("parent_id") . ",%")->where("id", "!=", \request("parent_id"));
-            //            })
-            //          文件夹树暂时显示一层
-            ->where('parent_id',0)
+            ->where('parent_id', $parentFolderId)
             ->orderByDesc("sequence")
             ->get([
                 'id',
@@ -64,7 +60,6 @@ class FolderController extends Controller
         ];
 
         return $this->success([
-            //'data' => make_tree($folders->toArray(), \request("parent_id", 0)),
             'object'=> $container,
             'data' => $folders
         ]);

+ 1 - 1
routes/api.php

@@ -62,7 +62,7 @@ Route::middleware(['auth:sanctum','account.limit'])->group(function () {
     Route::get("department-items", [API\DepartmentController::class, "publicSearch"]);
     Route::get("container-linkage/{library_id}", [API\ContainerController::class, "linkage"]);
     Route::get("folder-open", [API\FolderController::class, "open"]);
-    Route::get("folder-tree/{object_type}/{object_id}", [API\FolderController::class, "tree"]);
+    Route::get("folder-tree/{object_type}/{object_id}/{parent_folder_id?}", [API\FolderController::class, "tree"]);
     Route::get("file/{object_type}/{object_id}", [API\FileController::class, "byObject"]);
     Route::get("folder/file-version-tree/{object_type}/{object_id}", [API\FolderController::class, "versionFileTreeByObject"]);
     Route::get("project-asset-tree/{project_id}", [API\ProjectController::class, "projectAssetTree"]);