Menu.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php namespace App\Http\Controllers\Admin;
  2. use App\Http\Requests\Admin\Menu as AdminMenu;
  3. use Illuminate\Support\Facades\DB;
  4. /**
  5. * 菜单管理
  6. *
  7. * @author 刘相欣
  8. */
  9. class Menu extends Auth{
  10. protected function _initialize(){
  11. parent::_initialize();
  12. $this->assign('breadcrumb1','系统');
  13. $this->assign('breadcrumb2','后台菜单管理');
  14. }
  15. /**
  16. * 列表
  17. */
  18. public function index(){
  19. $cate = DB::table('menu')->select(['id','pid','module','title as name'])->get()->toArray();
  20. // 树形
  21. $list = array_sort(list_to_tree($cate),'module',SORT_ASC);
  22. $this->assign('list',json_encode($list,TRUE));
  23. return $this->fetch();
  24. }
  25. public function add(AdminMenu $request){
  26. // 进行验证
  27. $request->scene('add')->validate();
  28. // 接收参数
  29. $data['pid'] = (int) request('id',0);
  30. $data['sort_order'] = (int) request('sort_order',0);
  31. $data['title'] = request('title','');
  32. $data['url'] = request('url','');
  33. $data['module'] = request('module','');
  34. $data['icon'] = request('icon','');
  35. $data['type'] = request('type','');
  36. // 新增
  37. $id = DB::table('menu')->insertGetId($data);
  38. // 提示
  39. if( !$id ) return ['error'=>'新增失败'];
  40. // 成功
  41. return ['success'=>'添加成功','id'=>$id,'name'=>$data['title']];
  42. }
  43. /* 编辑 */
  44. public function edit(AdminMenu $request){
  45. // 进行验证
  46. $request->scene('edit')->validate();
  47. // 接收参数
  48. $id = (int) request('id',0);
  49. $data['sort_order'] = (int) request('sort_order',0);
  50. $data['title'] = request('title','');
  51. $data['url'] = request('url','');
  52. $data['module'] = request('module','');
  53. $data['icon'] = request('icon','');
  54. $data['type'] = request('type','');
  55. // 新增
  56. $result = DB::table('menu')->where(['id'=>$id])->update($data);
  57. // 提示
  58. if( !$result ) return ['error'=>'编辑失败'];
  59. // 成功
  60. return ['success'=>'修改成功','name'=>$data['title']];
  61. }
  62. /* 删除 */
  63. public function del(AdminMenu $request){
  64. // 进行验证
  65. $request->scene('del')->validate();
  66. // 接收参数
  67. $id = (int) request('id');
  68. // 如果有数据
  69. if(DB::table('menu')->where(['pid'=>$id])->first()) return ['error'=>'请先删除子节点!!'];
  70. // 删除节点
  71. $result = DB::table('menu')->where('id',$id)->delete();
  72. // 删除失败
  73. if( !$result ) return ['error'=>'请先删除子节点!!'];
  74. // 删除成功
  75. return ['success'=>'删除成功'];
  76. }
  77. /* 获取信息 */
  78. public function get_info(AdminMenu $request){
  79. // 进行验证
  80. $request->scene('get_info')->validate();
  81. // 接收参数
  82. $id = (int) request('id');
  83. // 查询数据
  84. $data = DB::table('menu')->find($id);
  85. // 返回结果
  86. return $data;
  87. }
  88. }