«
thinkphp 无限级查询树结构

时间:2024-4-3    作者:熊永生    分类: thinkphp


thinkphp 无限级查询树结构

控制器

$list = $this->CateModel->where(['status'=>1])->order(['pid' => 'asc','sort'=>'desc','id'=>'asc'])->select();
if($list){
$tree = tree($list,0,'pid');
return  msg($tree,'获取成功',1);
}else{
return msg('','获取失败',0);
}

公共方法


/**
* 树结构
*/
function tree($list, $parentId = 0, $pid = 'parent_id', $childrenName = 'children')
{
$result = [];
foreach ($list as $v) {
    if ($v[$pid] == $parentId) {
        $children = tree($list, $v['id'], $pid, $childrenName);
        if (!empty($children)) {
            $v[$childrenName] = $children;
        }
        $result[] = $v;
    }
}
return $result;

}

> mysql结构

CREATE TABLE home_cate (
id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
name varchar(100) DEFAULT NULL COMMENT '标题',
img varchar(255) DEFAULT NULL COMMENT '图片',
pid int(11) DEFAULT '0' COMMENT '父级id',
sort int(11) DEFAULT '0' COMMENT '排序',
create_time datetime DEFAULT NULL COMMENT '创建时间',
update_time datetime DEFAULT NULL COMMENT '更新时间',
delete_time datetime DEFAULT NULL COMMENT '删除时间',
status int(1) DEFAULT '1' COMMENT '状态 0:禁用 1:正常',
PRIMARY KEY (id)
) ENGINE=MyISAM AUTO_INCREMENT=1030 DEFAULT CHARSET=utf8mb4 COMMENT='菜单表';

标签: 无限极