route('code'); $postID = $request->route('postID'); // 게시판 코드 확인 if (!$code || !$postID) { abort(404); } $boardService = new BoardService(); // 게시판 정보 조회 $board = $boardService->find($code); // 게시판 존재 유무 if (!$board->exists) { return alert('존재하지 않는 게시판입니다.', DIRECTORY_SEPARATOR); } // 게시판 사용 여부 if ($board->is_display == 0) { return alert('더 이상 사용하지 않는 게시판입니다.', DIRECTORY_SEPARATOR); } $postService = new PostService(); // 게시글 조회 $post = $postService->find($postID); $boardIndexURL = route('board.list', $code); // 게시글 존재 유무 if (!$post->exists) { return alert('존재하지 않는 게시글입니다.', $boardIndexURL); } // 게시판 정보 조회 $boardMeta = $boardService->meta($board->id); // 보기 권한 확인 $response = Gate::inspect('view', [$post, $boardMeta]); if($response->denied()) { if($response->code() == 401) { return loginCheck($boardIndexURL); }else{ return alert($response->message(), $boardIndexURL); } } // 신고 시 숨김 if ( $boardMeta->item('use_blame', 0) && $post->blame >= $boardMeta->item('blame_blind_count', 0) ) { return alert('신고 누적으로 비공개 처리되었습니다. 해당 게시글은 관리자 확인 후 이용규칙에 따라 처리됩니다.', $boardIndexURL); } // 게시글 조회 수 증가 $postService->addHit($post); $request->merge([ 'board' => $board, 'boardMeta' => $boardMeta, 'post' => $post ]); return $next($request); } }