Cml\Vendor\Tree::getTreeNoFormat PHP 메소드

getTreeNoFormat() 공개 정적인 메소드

获取树--返回数组
public static getTreeNoFormat ( array &$list, integer $pid ) : string | array
$list array 数据列表数组
$pid integer 初始化树时候,代表获取pid下的所有子集
리턴 string | array
    public static function getTreeNoFormat(&$list, $pid = 0)
    {
        $res = [];
        if (!is_array($list)) {
            //遍历结束
            return $res;
        }
        foreach ($list as $v) {
            if (isset($v[self::$config['pid']]) && $v[self::$config['pid']] == $pid) {
                //获取pid下的子集
                $v['sonNode'] = self::getTreeNoFormat($list, $v[self::$config['id']]);
                $res[$v[self::$config['id']]] = $v;
            }
        }
        return $res;
    }

Usage Example

예제 #1
0
파일: Acl.php 프로젝트: linhecheng/cmlphp
 /**
  * 获取有权限的菜单列表
  *
  * @return array
  */
 public static function getMenus()
 {
     $res = [];
     $authInfo = self::getLoginInfo();
     if (!$authInfo) {
         //登录超时
         return $res;
     }
     Model::getInstance()->db()->table(['menus' => 'm'])->columns(['distinct m.id', 'm.pid', 'm.title', 'm.url']);
     //当前登录用户是否为超级管理员
     if (!self::isSuperUser()) {
         Model::getInstance()->db()->join(['access' => 'a'], 'a.menuid=m.id')->lBrackets()->whereIn('a.groupid', $authInfo['groupid'])->_or()->where('a.userid', $authInfo['id'])->rBrackets()->_and();
     }
     $result = Model::getInstance()->db()->where('m.isshow', 1)->orderBy('m.sort', 'DESC')->orderBy('m.id', 'ASC')->limit(0, 5000)->select();
     $res = Tree::getTreeNoFormat($result, 0);
     return $res;
 }
All Usage Examples Of Cml\Vendor\Tree::getTreeNoFormat