<?php /** * Created by PhpStorm. * User: tangxingguo * Date: 2017/4/11 * Time: 18:33 */ namespace Api\Controller\NewsClass; use Common\Model\ClassModel; use Common\Service\ClassService; class ListController extends \Api\Controller\AbstractController { /** * List * @author tangxingguo * @desc 分类列表 * @param int class_id 新闻一级分类ID * array 新闻列表 * array( 'list' => array( 'class_id' => '1', // 一级分类ID 'child' => array( 'order' => 1, // 排序 'class_id' => 8, // 二级分类ID 'parent_id' => 3, // 一级分类ID 'class_name' => '核心单品', // 分类名称 ) ) ); */ public function Index_post() { $classId = I('post.class_id'); // 默认分类 $defaultClass = [ 'class_id' => '', 'class_name' => '全部分类', 'description' => '', ]; // 列表 $classServ = new ClassService(); if (!empty($classId)) { $classList[] = $classServ->get($classId); $childrenClass = $classServ->list_by_conds(['parent_id' => $classId]); $classList = array_merge($classList, $childrenClass); } else { $classList = $classServ->list_all(); } $resultList = []; // 处理一级分类 foreach ($classList as $key => $item) { if ($item['parent_id'] == 0) { $item['child'] = []; $resultList[$item['class_id']] = $item; unset($classList[$key]); } } // 排序一级 $resultList = array_combine_by_key( multi_array_sort($resultList, 'order', SORT_NUMERIC, SORT_ASC), 'class_id' ); // 处理二级分类 foreach ($classList as $item) { // 开启 if ($item['is_open'] == ClassModel::IS_OPEN_OPEN) { $resultList[$item['parent_id']]['child'][] = $item; } } // 排序二级 foreach ($resultList as &$item) { // 排序二级 if (!empty($item['child'])) { $item['child'] = multi_array_sort($item['child'], 'order', SORT_NUMERIC, SORT_ASC); } } array_unshift($resultList, $defaultClass); $this->_result = [ 'list' => $resultList ]; } }