ManagerController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace App\Http\Controllers\Admin\Board\Group;
  3. use Illuminate\Http\Request;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\User;
  6. use App\Models\BoardGroupAdmin;
  7. class ManagerController extends Controller
  8. {
  9. private BoardGroupAdmin $boardGroupAdminModel;
  10. private User $userModel;
  11. public function __construct(BoardGroupAdmin $boardGroupAdmin, User $user)
  12. {
  13. $this->boardGroupAdminModel = $boardGroupAdmin;
  14. $this->userModel = $user;
  15. }
  16. /**
  17. * 게시판 그룹 관리자
  18. * @method GET
  19. * @see /admin/board/group/manager
  20. */
  21. public function show(int $boardGroupID)
  22. {
  23. $boardGroupAdminData = $this->boardGroupAdminModel->data();
  24. if ($boardGroupAdminData->rows > 0) {
  25. foreach ($boardGroupAdminData->list as $i => $row) {
  26. $boardGroupAdminData->list[$i] = $row;
  27. }
  28. }
  29. return view('admin.board.group.manager', [
  30. 'actionURL' => route('admin.board.group.manager.store'),
  31. 'boardGroupAdminData' => $boardGroupAdminData,
  32. 'boardGroupID' => $boardGroupID
  33. ]);
  34. }
  35. /**
  36. * 게시판 그룹 관리자 등록 저장
  37. * @method POST
  38. * @see /admin/board/group/manager
  39. */
  40. public function store(Request $request)
  41. {
  42. $rules = [
  43. 'board_group_id' => 'required|numeric|exists:tb_board_group,id',
  44. 'sid' => 'required|exists:users,sid'
  45. ];
  46. $attributes = [
  47. 'board_group_id' => '게시판 그룹 PK',
  48. 'sid' => '회원 ID'
  49. ];
  50. $posts = $this->validate($request, $rules, [], $attributes);
  51. $boardGroupID = $posts['board_group_id'];
  52. $sid = $posts['sid'];
  53. $userID = $this->userModel->where('sid', $sid)->value('id');
  54. // 이미 등록된 관리자인지 확인
  55. $isBoardAdmin = $this->boardGroupAdminModel->where('user_id', $userID)->count();
  56. if($isBoardAdmin) {
  57. return back()->withErrors(['sid' => "{$sid}는 이미 등록된 관리자 입니다."])->withInput();
  58. }
  59. $this->boardGroupAdminModel->insert([
  60. 'board_group_id' => $boardGroupID,
  61. 'user_id' => $userID,
  62. 'created_at' => now()
  63. ]);
  64. $message = '게시판 그룹 관리자가 새로 등록되었습니다.';
  65. return redirect()->route('admin.board.group.manager.show', $boardGroupID)->with('message', $message);
  66. }
  67. /**
  68. * 게시판 그룹 관리자 삭제
  69. * @method DELETE
  70. * @see /admin/board/group/manager/destroy
  71. */
  72. public function destroy(Request $request)
  73. {
  74. $boardGroupID = $request->post('board_group_id');
  75. $chk = $request->post('chk');
  76. if ($chk) {
  77. foreach ($chk as $boardGroupAdminID) {
  78. $this->boardGroupAdminModel->find($boardGroupAdminID)->delete();
  79. }
  80. }
  81. $message = '게시판 그룹 관리자 정보가 삭제되었습니다.';
  82. return redirect()->route('admin.board.group.manager.show', $boardGroupID)->with('message', $message);
  83. }
  84. }