AdminController.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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\AdminNameRequest;
  7. use App\Http\Requests\PasswordRequest;
  8. class AdminController extends BaseController
  9. {
  10. /* 视图文件相对路径 */
  11. protected $view = 'admin.admin.list';
  12. protected $view_addupd = 'admin.admin.addupd';
  13. protected $menu_name = 'admin';
  14. public function __construct(AdminsRole $adminsRole)
  15. {
  16. parent::__construct($this->menu_name);
  17. $this->adminsRole = $adminsRole;
  18. }
  19. public function getRoles()
  20. {
  21. return AdminsRole::all();
  22. }
  23. public function findAdmin($id)
  24. {
  25. $admin = Admin::find($id);
  26. if ($admin) {
  27. $code = 1;
  28. $mes = $admin;
  29. }
  30. else {
  31. $code = 0;
  32. $mes = redirect()->route($this->menu_name)->with('error', '找不到该管理员');
  33. }
  34. return ['code' => $code, 'mes' => $mes];
  35. }
  36. /* 管理员管理 */
  37. // 页面展示
  38. public function index()
  39. {
  40. $admins = Admin::where([])
  41. ->orderBy('created_at', 'desc')
  42. ->paginate(10);
  43. $view_para = array_add($this->view_para, 'admins', $admins);
  44. $view_para = array_add($view_para, 'adminsRole', $this->adminsRole);
  45. return view($this->view, $view_para);
  46. }
  47. /* 添加 */
  48. // 页面展示
  49. public function addView()
  50. {
  51. $roles = $this->getRoles();
  52. $view_para = array_add($this->view_para, 'roles', $roles);
  53. return view($this->view_addupd, $view_para);
  54. }
  55. // 表单处理
  56. public function addPost(AdminNameRequest $request, PasswordRequest $request)
  57. {
  58. $data = Request::all();
  59. $data['password'] = bcrypt($data['password']);
  60. Admin::create($data);
  61. return redirect()->route($this->menu_name)->with('success', '添加成功');
  62. }
  63. /* 修改密码 */
  64. // 页面展示
  65. public function updPwdView($id)
  66. {
  67. $find_admin = $this->findAdmin($id);
  68. if ( $find_admin['code'] ) {
  69. $admin = $find_admin['mes'];
  70. }
  71. else {
  72. return $find_admin['mes'];
  73. }
  74. $view_para = array_add($this->view_para, 'admin', $admin);
  75. return view($this->view_addupd, $view_para);
  76. }
  77. // 表单处理
  78. public function updPwdPost($id, PasswordRequest $request)
  79. {
  80. if (1 == $id) {
  81. return redirect()->route($this->menu_name)->with('error', '该管理员不可修改密码');
  82. }
  83. $find_admin = $this->findAdmin($id);
  84. if ( $find_admin['code'] ) {
  85. $admin = $find_admin['mes'];
  86. }
  87. else {
  88. return $find_admin['mes'];
  89. }
  90. $admin->password = bcrypt(Request::input('password'));
  91. $admin->save();
  92. return redirect()->route($this->menu_name)->with('success', '修改密码成功');
  93. }
  94. /* 修改角色 */
  95. // 页面展示
  96. public function updRoleView($id)
  97. {
  98. $find_admin = $this->findAdmin($id);
  99. if ( $find_admin['code'] ) {
  100. $admin = $find_admin['mes'];
  101. }
  102. else {
  103. return $find_admin['mes'];
  104. }
  105. $roles = $this->getRoles();
  106. $view_para = array_add($this->view_para, 'roles', $roles);
  107. $view_para = array_add($view_para, 'admin', $admin);
  108. return view($this->view_addupd, $view_para);
  109. }
  110. // 表单处理
  111. public function updRolePost($id)
  112. {
  113. if (1 == $id) {
  114. return redirect()->route($this->menu_name)->with('error', '该管理员不可修改角色');
  115. }
  116. $find_admin = $this->findAdmin($id);
  117. if ( $find_admin['code'] ) {
  118. $admin = $find_admin['mes'];
  119. }
  120. else {
  121. return $find_admin['mes'];
  122. }
  123. $admin->rid = Request::input('rid');
  124. $admin->save();
  125. return redirect()->route($this->menu_name)->with('success', '修改角色成功');
  126. }
  127. /* 删除 */
  128. public function del($id)
  129. {
  130. if (1 == $id) {
  131. return redirect()->route($this->menu_name)->with('error', '该管理员不可删除');
  132. }
  133. Admin::destroy($id);
  134. return redirect()->route($this->menu_name)->with('success', '删除成功');
  135. }
  136. }