public function getSubs($categorys){
foreach($categorys as $key=>$value){
$children = Db::name('category')->where('parent_id',$value['id'])->select()->toArray();
if(!empty($children)){
$categorys[$key]['children'] = $this->getSubs($children);
}
}
return $categorys;
}
public function gettree(){
$parent_id = Request::param('parent_id',0);
$categorys = Db::name('category')->where('parent_id',$parent_id)->select()->toArray();
$categorys = $this->getSubs($categorys);
dump($categorys);
}
项目框架Think PHP
CREATE TABLE `tp_category` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`parent_id` int(11) UNSIGNED NOT NULL DEFAULT 0,
`name` varchar(200) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;
INSERT INTO `tp_category` VALUES (1, 0, 'php');
INSERT INTO `tp_category` VALUES (2, 0, 'java');
INSERT INTO `tp_category` VALUES (3, 0, 'c/c++');
INSERT INTO `tp_category` VALUES (4, 1, 'php基础');
INSERT INTO `tp_category` VALUES (5, 1, 'php开源资料');
INSERT INTO `tp_category` VALUES (6, 1, 'php框架');
INSERT INTO `tp_category` VALUES (7, 2, 'java Se');
INSERT INTO `tp_category` VALUES (8, 2, 'java EE');
INSERT INTO `tp_category` VALUES (9, 2, 'java Me');
INSERT INTO `tp_category` VALUES (10, 3, 'c/c++基础编程');
INSERT INTO `tp_category` VALUES (11, 3, 'c/c++系统开发');
INSERT INTO `tp_category` VALUES (12, 3, 'c嵌入式编程');
INSERT INTO `tp_category` VALUES (13, 3, 'c++应用开发');
INSERT INTO `tp_category` VALUES (14, 13, 'c++桌面应用开发');
INSERT INTO `tp_category` VALUES (15, 13, 'c++游戏开发');
INSERT INTO `tp_category` VALUES (16, 6, 'ThinkPHP5.0');
INSERT INTO `tp_category` VALUES (17, 6, 'ThinkPHP5.1');
INSERT INTO `tp_category` VALUES (18, 6, 'ThinkPHP6.0');
INSERT INTO `tp_category` VALUES (19, 16, 'ThinkPHP5.0目录结构');
INSERT INTO `tp_category` VALUES (20, 16, 'ThinkPHP5.0路由');
INSERT INTO `tp_category` VALUES (21, 15, '游戏引擎开发');
INSERT INTO `tp_category` VALUES (22, 15, '游戏分类简介');
SET FOREIGN_KEY_CHECKS = 1;