Auth.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php namespace App\Http\Controllers\Admin;
  2. use Illuminate\Support\Facades\DB;
  3. /**
  4. * 后台控制器
  5. *
  6. * @author 刘相欣
  7. *
  8. * */
  9. class Auth extends Admin{
  10. /**
  11. * 获得菜单
  12. *
  13. * */
  14. protected function getMenu($module = '')
  15. {
  16. // 获得菜单,如果不是管理员,获得需要验证的菜单
  17. $adminMenu = in_array(admin('uid'), explode(',', config('administrator'))) ? $this->getAdminMenu($module) : $this->getAuthMenu($module);
  18. // 菜单树形
  19. $adminMenu = list_to_tree($adminMenu, 'id', 'pid', 'children', 0);
  20. // 分配数据
  21. $this->assign('adminMenu', $adminMenu);
  22. // 返回结果
  23. return $adminMenu;
  24. }
  25. /**
  26. * 获得管理员菜单
  27. *
  28. * */
  29. protected function getAdminMenu($module)
  30. {
  31. // 查询条件
  32. $map['type'] = 'nav';
  33. $map['status'] = '1';
  34. if ($module) $map['module'] = $module;
  35. // 返回菜单数据
  36. return DB::table('menu')->where($map)->orderBy('sort_order')->get()->toArray();
  37. }
  38. /**
  39. * 获得验证菜单
  40. *
  41. * */
  42. protected function getAuthMenu($module)
  43. {
  44. // 查询条件
  45. $map = [];
  46. $map[] = ['menu.type', '=', 'nav'];
  47. $map[] = ['menu.status', '=', '1'];
  48. if ($module) $map[] = ['menu.module', '=', $module];
  49. // 返回菜单数据
  50. $menu = Db::table('menu')
  51. ->join('auth_rule', 'menu.id','=','auth_rule.menu_id')
  52. ->where($map)
  53. ->whereIn('auth_rule.group_id',admin('group_id'))
  54. ->orderBy('menu.sort_order')
  55. ->orderBy('menu.id')->groupBy('menu.id')->select(['menu.id','menu.pid','menu.module','menu.title','menu.url','menu.icon'])->get()->toArray();
  56. return $menu;
  57. }
  58. }