ThinkPHP5 实现二级分类功能

1 min read

简单记录记录一下…

数据库

--
-- 表的结构 `sort`
--

CREATE TABLE IF NOT EXISTS `api_sort` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `time` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 ;

--
-- 表的结构 `info`
--

CREATE TABLE IF NOT EXISTS `api_info` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `sort` int(255) NOT NULL,
  `time` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 ;

控制器

public function getTree(){
    $cateCount = db('sort')->count();
    $cates = Db::name('sort')->order('id','desc')->field('id,name')->select();
    for($i=0;$i<$cateCount;$i++)
    {
        $cates[$i]['nr'] = db('info')->where(array('sort'=>$cates[$i]['id']))->field('id,name')->select();
        $cates[$i]['count'] = db('info')->where(array('sort'=>$cates[$i]['id']))->count();
    }
    echo json_encode($cates);
}

返回数据

[{
	"id": 2,
	"name": "分类一",
	"nr": [{
		"id": 4,
		"name": "测试"
	}, {
		"id": 5,
		"name": "测试"
	}, {
		"id": 6,
		"name": "测试"
	}],
	"count": 3
}, {
	"id": 1,
	"name": "默认分类",
	"nr": [{
		"id": 1,
		"name": "测试"
	}, {
		"id": 2,
		"name": "测试"
	}, {
		"id": 3,
		"name": "测试"
	}],
	"count": 3
}]