123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- <?php
- namespace App\Http\Resources\API;
- use App\Models\Asset;
- use App\Models\RequirementGroup;
- use Illuminate\Http\Request;
- use Illuminate\Http\Resources\Json\JsonResource;
- class AssetRequirementGroupTreeResource extends JsonResource
- {
- /**
- * Transform the resource into an array.
- *
- * @return array<string, mixed>
- */
- public function toArray(Request $request): array
- {
- $tree = $this->buildTree($this->requirementGroups);
- //return parent::toArray($request);
- return[
- 'id'=>$this->id,
- 'name'=>$this->name,
- 'parent_id' => $this->parent_id,
- //'children' =>$this->parent_id == 0 ? RequirementGroupResource::collection($this->children) : [],
- 'parent_asset' => new AssetParentResource($this->parent),
- 'requirement_group' => $tree,
- ];
- }
- // 创建树状结构的函数
- function buildTree($items, $parentId = 0) {
- $tree = [];
- foreach ($items as $item) {
- if ($item['parent_id'] == $parentId) {
- $children = $this->buildTree($items, $item['id']);
- if ($children) {
- $item['children'] = $children;
- }
- $tree[] = $item;
- }
- }
- return $tree;
- }
- }
|