www.gusucode.com > LaySNS PHP轻量内容社区综合系统 v2.4源码程序 > LaySNS_v2.4.0/application/common/model/AuthRule.php
<?php namespace app\common\model; use think\Db; use think\Model; use app\common\model\AuthGroup as AuthGroupModel; class AuthRule extends Model { public function getAllNode($id) { $auth_group_model = new AuthGroupModel(); $auth_group_data = $auth_group_model->find($id)->toArray(); $auth_rules = explode(',', $auth_group_data['rules']); //$map['remark']=''; $idarr=$this->where('pid=0')->column('id'); //$map['pid']=array('in',$idarr); $res = $this->field('id,pid,title')->select(); $all_node = array(); $sub_node = array(); foreach ($res as $v) { //if ($v['pid']==0){ if (in_array($v['pid'], $idarr)){ //为顶级菜单的子菜单 $all_node[] = $v; }else{ //次顶级菜单 $sub_node[$v['pid']][] = $v; } } foreach ($all_node as $k => $v) { if (isset($sub_node[$v['id']])) { foreach ($sub_node[$v['id']] as $k1 => $v1) { if(in_array($v1['id'], $auth_rules)){ $sub_node[$v['id']][$k1]['checked'] = 1; }else{ $sub_node[$v['id']][$k1]['checked'] =0; } } $all_node[$k]['subnode'] = $sub_node[$v['id']]; }else{ $all_node[$k]['subnode'] =0; } if(in_array($v['id'], $auth_rules)){ $all_node[$k]['checked'] = 1; }else{ $all_node[$k]['checked'] =0; } } $res = $all_node; return $res; } }