Public function demoList()//演示打印方法
{
$meutList = $this->getMenuList();
echo "<pre>";
print_r($meutList);
echo "<pre>";
die;
}
//----------------------------------
// 获取菜单列表 - 获取全部菜单数据
private function getMenuList()
{
//获取全部菜单列表数组
$menuList = Db::name('system_menu')
->field('id,pid,title,icon,href,target')
->where('status', 1)
->order('sort', 'desc')
->select();
$menuList = $this->buildMenuChild($menuList);
return $menuList;
}
//创建递去函数方法 - 获取子菜单
private function buildMenuChild($menuList,$pid = 0){
//定义顶级pid为0
$treeList = [];//定义空数组 存放列表
foreach ($menuList as $v) { //数组foreach循环
//pid = 0 筛选出全部顶级分类
if ($pid == $v['pid']) {
$node = $v;//将顶级节点进行保存
//子节点进行递归处理 重新调用函数方法
$child = $this->buildMenuChild($menuList,$v['id']);//参数1不变,传入全部菜单列表,参数2传入子菜单id
if (!empty($child)) {
//子菜单查询到 保存到$node数组中['child']字段
$node['child'] = $child;
}
// todo 后续此处加上用户的权限判断
$treeList[] = $node;//数组 循环添加
}
}
return $treeList;//返回全部菜单数组
}
wms_system_menu.sql //sql文件