amcharts-强制定向树-转换数据Laravel PHP

问题描述 投票:0回答:1

我正在尝试显示一个由力导向的树。有3个型号公司/部门/部门

每个公司都有许多部门。每个部门都属于一个公司。

每个部门都有许多部门。每个部门都属于一个部门。

amcharts期望使用如下语法:

[{
  "name": "First",
  "children": [{
    "name": "A1", "value": 100
  }, {
    "name": "A2", "value": 60
  }, {
    "name": "A3", "value": 30
  }]
}, {
  "name": "Second",
  "children": [{
    "name": "B1", "value": 135
  }, {
    "name": "B2", "value": 98
  }, {
    "name": "B3", "value": 56
  }]
}, {
  "name": "Third",
  "children": [{
    "name": "C1", "value": 335
  }, {
    "name": "C2", "value": 148
  }, {
    "name": "C3", "value": 126
  }, {
    "name": "C4", "value": 26
  }]
}, {
  "name": "Fourth",
  "children": [{
    "name": "D1", "value": 415
  }, {
    "name": "D2", "value": 148
  }, {
    "name": "D3", "value": 89
  }, {
    "name": "D4", "value": 64
  }, {
    "name": "D5", "value": 16
  }]
}, {
  "name": "Fifth",
  "children": [{
    "name": "E1", "value": 687
  }, {
    "name": "E2", "value": 148
  }]
}]

我只能在这里获得第一级:

foreach ($companies as $company) {
    $data[] = 
            (object) [
             'name' => $company->name,
             'value' => $company->value,
            ];
}

我确信我需要进一步遍历$ company->的定义,依此类推,但不确定如何构建最终构造的amcharts。有任何提示吗?

laravel amcharts
1个回答
0
投票

您可以尝试以下方式:

        $data = [];
        foreach ($companies as $company) {
            $childrenArray = [
                'name' => $company->name,
            ];
            foreach ($company->divisions as $division) {
                $childArray['children'][] = [
                    'name' => $division->name,
                    'value' => $division->value,
                ];
            }
            $data[] = $childrenArray;
        }
        return json_encode($data);
© www.soinside.com 2019 - 2024. All rights reserved.