Browse Source

任务详细加载链接容器

moell 10 months ago
parent
commit
7d45933ec2

+ 3 - 1
app/Http/Controllers/API/TaskController.php

@@ -93,7 +93,9 @@ class TaskController extends Controller
      */
     public function show(string $id)
     {
-        $task = Task::query()->allowed($id)->findOrFail($id);
+        $task = Task::query()->allowed($id)->with([
+            'containers'
+        ])->findOrFail($id);
 
         return new TaskDetailResource($task);
     }

+ 23 - 0
app/Http/Resources/API/ContainerSimpleResource.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace App\Http\Resources\API;
+
+use Illuminate\Http\Request;
+use Illuminate\Http\Resources\Json\JsonResource;
+
+class ContainerSimpleResource extends JsonResource
+{
+    /**
+     * Transform the resource into an array.
+     *
+     * @return array<string, mixed>
+     */
+    public function toArray(Request $request): array
+    {
+        return [
+            'id' => $this->id,
+            'name' => $this->name,
+            'task_container_id' => $this->pivot->id,
+        ];
+    }
+}

+ 2 - 1
app/Http/Resources/API/TaskDetailResource.php

@@ -51,7 +51,8 @@ class TaskDetailResource extends JsonResource
             "created_by" => new UserProfileResource($this->createdBy),
             "custom_fields" => $this->custom_fields,
             "created_at" => (string)$this->created_at,
-            "updated_at" => (string)$this->updated_at
+            "updated_at" => (string)$this->updated_at,
+            "containers" => ContainerSimpleResource::collection($this->containers),
         ];
     }
 }

+ 5 - 0
app/Models/Task.php

@@ -107,4 +107,9 @@ class Task extends Model
         return $this->belongsTo(User::class, 'assign');
     }
 
+    public function containers(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
+    {
+        return $this->belongsToMany(Container::class, "task_container")->withPivot(['id']);
+    }
+
 }