无限极分类展示和递归权限查询
1.无限极分类
public function getAllList(){
$data=self::get()->toArray();
//处理
return $this->getTree($data);
}
//递归调用
public function getTree($data,$pid=0,$level=0){
static $arr=[];//需要为静态的数组 将函数中此变量的值保存至下一次调用时
foreach ($data as $item){
//找父级
if($item['pid']==$pid){
$item['html']=str_repeat('--',$level*2);
$item['level']=$level+1;
$arr[]=$item;
$this->getTree($data,$item['offices_id'],$item['level']);
}
}
return $arr;
}
2.递归查询—这里是五表联查
//获取权限
public static function getNode($id){
$data=self::join('user_role','zg5_user.id','=','user_role.uid')
->join('role','user_role.rid','=','role.rid')
->join('role_node','role.rid','=','role_node.rid')
->join('node','role_node.nid','=','node.nid')
->where('zg5_user.id',$id)
->get();
return self::getTree($data,0);
}
//递归处理
public static function getTree($data,$pid=0){
$new=[];
foreach ($data as $v){
if ($v['pid']==$pid){
$v['child']=self::getTree($data,$v['nid']);
$new[]=$v;
}
}
return $new;
}
$('input[type="checkbox"]:checked').each(function(){
kaka.push($(this).val());
});