RoleController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use Request;
  4. use App\Models\Admin;
  5. use App\Models\AdminsRole;
  6. use App\Http\Requests\RoleRequest;
  7. class RoleController extends BaseController
  8. {
  9. /* 视图文件相对路径 */
  10. protected $view = 'admin.role.list';
  11. protected $view_addupd = 'admin.role.addupd';
  12. protected $menu_name = 'role';
  13. public function __construct()
  14. {
  15. parent::__construct($this->menu_name);
  16. }
  17. // 获取所属菜单选项
  18. public function getBelongMenus()
  19. {
  20. return $this->menu->where('sort2', '<>', 0)
  21. ->where('sort3', '<>', 0)
  22. ->whereNotNull('href')
  23. ->orderBy('sort1')
  24. ->orderBy('sort2')
  25. ->orderBy('sort3')
  26. ->get();
  27. }
  28. /* 角色管理 */
  29. // 页面展示
  30. public function index()
  31. {
  32. $roles = AdminsRole::where([])
  33. ->paginate(10);
  34. $view_para = array_add($this->view_para, 'roles', $roles);
  35. $view_para = array_add($view_para, 'menu', $this->menu);
  36. return view($this->view, $view_para);
  37. }
  38. /* 添加 */
  39. // 页面展示
  40. public function addView()
  41. {
  42. $view_para = array_add($this->view_para, 'menus', $this->getBelongMenus());
  43. return view($this->view_addupd, $view_para);
  44. }
  45. // 表单处理
  46. public function addPost(RoleRequest $request)
  47. {
  48. $data = Request::except('_token');
  49. $data['menus_id'] = implode(',', Request::input('menus_id'));
  50. AdminsRole::create($data);
  51. return redirect()->route($this->menu_name)->with('success', '添加成功');
  52. }
  53. /* 编辑 */
  54. // 页面展示
  55. public function updView($id)
  56. {
  57. $role = AdminsRole::find($id);
  58. if (!$role) {
  59. return redirect()->route($this->menu_name)->with('error', '找不到该角色');
  60. }
  61. $view_para = array_add($this->view_para, 'role', $role);
  62. $view_para = array_add($view_para, 'menus', $this->getBelongMenus());
  63. return view($this->view_addupd, $view_para);
  64. }
  65. // 表单处理
  66. public function updPost($id, RoleRequest $request)
  67. {
  68. if (1 == $id) {
  69. return redirect()->route($this->menu_name)->with('error', '该角色不可编辑');
  70. }
  71. $role = AdminsRole::find($id);
  72. if (!$role) {
  73. return redirect()->route($this->menu_name)->with('error', '找不到该角色');
  74. }
  75. $role = Request::except('_token');
  76. $role['menus_id'] = implode(',', Request::input('menus_id'));
  77. AdminsRole::where('id', $id)
  78. ->update($role);
  79. return redirect()->route($this->menu_name)->with('success', '编辑成功');
  80. }
  81. /* 删除 */
  82. public function del($id)
  83. {
  84. $if_del = Admin::where('rid', $id)
  85. ->count();
  86. if ($if_del) {
  87. return redirect()->route($this->menu_name)->with('error', '请先删除该角色下的管理员');
  88. }
  89. AdminsRole::destroy($id);
  90. return redirect()->route($this->menu_name)->with('success', '删除成功');
  91. }
  92. }