successJson('成功', json_decode($list, true)); } $list = Address::get(); $group = $list->groupBy('level'); $level_1 = $group['1']; foreach ($level_1 as $address) { $address['childs'] = $this->recursion($address, $group); } $list = json_encode($level_1); if (!file_exists($path)) { mkdir($path); } file_put_contents($path . 'address.json', $list); return $this->successJson('成功', $level_1); } private function recursion(Address $address, Collection $collection) { if (!$group = $collection[$address->level + 1]) { return []; } $childs = array(); foreach ($group as $key => $item) { if ($address->id == $item->parentid) { unset($group[$key]); $child = $this->recursion($item, $collection); if ($child) { $item['childs'] = $child; } $childs[] = $item; } } return $childs; } }