1、無限極往上獲取平臺類目樹信息 數據結構:商品類目id《category_id,商品類目父id《parent_id 數據需求:根據傳入最低層類目id,獲取所有上級類目信息(包含自己) 代碼如下: 1 // 無限極往上獲取平臺類目樹信息 2 public function platformCateg ...
1、無限極往上獲取平臺類目樹信息
數據結構:商品類目id《category_id,商品類目父id《parent_id
數據需求:根據傳入最低層類目id,獲取所有上級類目信息(包含自己)
代碼如下:
1 // 無限極往上獲取平臺類目樹信息 2 public function platformCategoryVerify($platform, $site_code, $platform_category_id, $tree) 3 { 4 $apCategories_info = ApCategories::where([['category_id' , $platform_category_id],['platform' , $platform],['site_code' , $site_code]])->first(['category_id', 'category_name', 'parent_id', 'level']); 5 if(!empty($apCategories_info->category_id)){ 6 $tree[] = $apCategories_info->toArray(); 7 $tree = $this->platformCategoryVerify($platform, $site_code, $apCategories_info->parent_id, $tree); //此處加“$tree = ” 是遞歸的關鍵,不然會導致 $tree數組,被覆蓋 8 } 9 return $tree; 10 }
2、無限極一次性,獲取平臺類目樹信息
數據結構:商品類目id《category_id,商品類目父id《parent_id
數據需求:一次性傳入整個類目列表,格式化輸出,類目樹結構,以欄位為下級son
代碼如下:
1 //無限極獲取指定類目下所有類目 2 protected function InfinitusCategory($category_list, $pid) 3 { 4 $tree = []; 5 foreach($category_list as $key => $value){ 6 //父親找兒子 7 if($value['category_parent_id'] == $pid){ 8 $value['son'] = $this->InfinitusCategory($category_list, $value['category_id']); 9 $tree[] = $value; 10 unset($category_list[$key]); 11 } 12 } 13 return $tree; 14 }
-----END
影子是一個會撒謊的精靈,它在虛空中流浪和等待被髮現之間;在存在與不存在之間....