Browse Source

load children task

moell 1 year ago
parent
commit
3ab6e76aaa

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

@@ -17,7 +17,10 @@ class TaskController extends Controller
      */
     public function index(Request $request)
     {
-        $tasks = Task::query()->filter($request->all())->paginate();
+        $tasks = Task::query()
+            ->where("parent_id", 0)
+            ->with(['children', 'assignTo', 'createdBy'])
+            ->filter($request->all())->paginate();
 
         return TaskResource::collection($tasks);
     }

+ 1 - 0
app/Http/Resources/API/TaskResource.php

@@ -23,6 +23,7 @@ class TaskResource extends JsonResource
             "status" => $this->status,
             "assign_to" => new UserProfileResource($this->assignTo),
             "created_by" => new UserProfileResource($this->createdBy),
+            "children" => TaskResource::collection($this->children),
         ];
     }
 }

+ 5 - 0
app/Models/Task.php

@@ -66,6 +66,11 @@ class Task extends Model
         return $this->belongsTo(User::class, 'canceled_by');
     }
 
+    public function children(): \Illuminate\Database\Eloquent\Relations\HasMany
+    {
+        return $this->hasMany(Task::class, 'parent_id');
+    }
+
     public function closedBy(): \Illuminate\Database\Eloquent\Relations\BelongsTo
     {
         return $this->belongsTo(User::class, 'closed_by');