这里写图片描述
// 数据库的话,字段多一个父id
/*
无限级分类 返回多维数组
*/
protected function cat_tree($list,$parent_id=0){
$temp=array();
foreach($list as $k=>$v){
if($v['parentid']==$parent_id){
$temp[$k]=$v;
//定义控制器路径
$temp[$k]['url'] = Url($v['c'].'/'.$v['a'].'?menuid='.$v['id'].'&'.$v['data']);
$temp[$k]['children']=$this->cat_tree($list,$v['id']);
}
}
return $temp;
}
public function tgetMenu(){
// $roleid = session('roleid');//实际使用这里
//读取角色id
$roleid = 2;//测试使用这里
//读取该角色对于的所有菜单
$rol = Db::table('tb_role_priv')->where(array( 'roleid'=>$roleid))->select();
$m_id_arr = array();
foreach($rol as $k=>$v){
array_push($m_id_arr,$v["menuid"]);
}
$string=implode(",",$m_id_arr);
//将菜单id从数组转字符串在次查询
$result = Db::table('tb_menu')->where(array( 'display'=>1))->order('listorder ASC')->select($string);
// dump($this->cat_tree($result));
//调用无限极分类菜单查询返回对应数据
echo json_encode($this->cat_tree($result));
}