order('weigh asc,id asc')->select(); $tree->init(collection($list)->toArray(), 'pid'); return self::transformTree($tree->getTreeArray(0)); } public static function getOptions($type = 'goods', $pid = 0) { $list = self::$Model::where('type', $type)->order('weigh asc,id asc')->column('name', 'id'); return $list; } public static function transformTree($data) { return array_map(function ($item) { $transformedItem = [ 'groupId' => (string)$item['id'], 'thumbnail' => $item['image'] ?: 'https://cdn-we-retail.ym.tencent.com/miniapp/category/category-default.png', 'name' => $item['name'] ]; if (isset($item['childlist']) && is_array($item['childlist']) && count($item['childlist']) > 0) { $transformedItem['children'] = self::transformTree($item['childlist']); } return $transformedItem; }, $data); } }