Beispiel #1
0
 public static function getTreeByAdmin($admin_id = -1)
 {
     if ($admin_id == -1) {
         $admin = new SysUser();
         $admin->account = 'root';
     } else {
         $admin = SysUser::find($admin_id);
         if (empty($admin)) {
             throw new Exception("没有查找到admin数据", 10003);
         }
     }
     if ($admin->account == 'root') {
         $list = SysMenu::get();
     } else {
         $list = SysMenu::select('sys_menus.*', 'sys_role_menus.r_id AS checked')->join('sys_role_menus', function ($q) {
             $q->on('sys_menus.id', '=', 'sys_role_menus.m_id');
         })->join('sys_user_roles', function ($q) use($admin_id) {
             $q->on('sys_user_roles.r_id', '=', 'sys_role_menus.r_id')->where('sys_user_roles.admin_id', '=', $admin_id);
         })->groupBy('sys_menus.id')->get();
     }
     $re = SysMenu::makeTree($list);
     return $re['tree'];
 }