[PHP] 게시판 만들기 with MVC - 12 Delete Dummy

2023. 12. 28. 16:33· PHP/Modern PHP
목차
  1. 개요
  2. Model
  3. Controller

 

이전글 : [PHP] 게시판 만들기 with MVC - 1부 Migration

이전글 : [PHP] 게시판 만들기 with MVC - 2부 Routing

이전글 : [PHP] 게시판 만들기 with MVC - 3부 View(List & Create)

이전글 : [PHP] 게시판 만들기 with MVC - 4부 Controller

이전글 : [PHP] 게시판 만들기 with MVC - 5부 Pagination

이전글 : [PHP] 게시판 만들기 with MVC - 6부 Read

이전글 : [PHP] 게시판 만들기 with MVC - 7부 Update & Delete

이전글 : [PHP] 게시판 만들기 with MVC - 8부 Lock

이전글 : [PHP] 게시판 만들기 with MVC - 9부 Reply(List & Create)

이전글 : [PHP] 게시판 만들기 with MVC - 10부 Reply(Update & Delete)

이전글 : [PHP] 게시판 만들기 with MVC - 11 SubReply

 

개요

여기까지 다 하셨다면 축하드립니다.

그걸 해내셨군요.

 

만약 막힌다면 빠르게 제 깃허브에서 소스를 가져가는 걸 권합니다.

https://github.com/DSeung001/php-bbs

 

GitHub - DSeung001/php-bbs

Contribute to DSeung001/php-bbs development by creating an account on GitHub.

github.com

우리가 배우려는 거는 프로그램의 흐름과 개념, 로직이지 빠르게 영타를 치려는 게 아니잖아요.

 

이번 포스팅은 Delete Dummy, 더미 삭제입니다.

이전에도 삭제 기능을 구현했지만 Post 삭제시 관련 Reply가 남아있고

Reply 삭제시 Sub Reply들이 남아있는 상태였습니다, 이것들도 같이 지워지게 수정해 봅시다.

Model

Reply 모델을 잠깐 수정합시다, 메서드 2개를 추가합니다.

- deleteReplies : Post에 관련된 댓글 삭제하기

- deleteSubReplies : Reply 하위에 Sub Reply 삭제하기

bbs/Model/Reply.php

<?php

namespace Model;

use PDOException;

class Reply extends BaseModel
{
   	...

    /**
     * Post에 해당하는 댓글 삭제
     * @param $postIdx
     * @return bool
     */
    public function deleteReplies($postIdx): bool
    {
        try {
            $query = "DELETE FROM replies WHERE post_idx = :post_idx";
            $stmt = $this->conn->prepare($query);
            return $stmt->execute([
                'post_idx' => $postIdx,
            ]);
        } catch (PDOException $e) {
            error_log($e->getMessage());
            return false;
        }
    }

    /**
     * Reply 하위의 SubReplies 삭제
     * @param $parentIdx
     * @return bool
     */
    public function deleteSubReplies($parentIdx): bool
    {
        try {
            $query = "DELETE FROM replies WHERE parent_idx = :parent_idx";
            $stmt = $this->conn->prepare($query);
            return $stmt->execute([
                'parent_idx' => $parentIdx,
            ]);
        } catch (PDOException $e) {
            error_log($e->getMessage());
            return false;
        }
    }
}

Controller

4줄 추가하면 됩니다.

bbs/Controller/PostController.php

<?php
namespace Controller;

use Model\Post;
// 추가
use Model\Reply;

class PostController extends BaseController
{
    private $post;
    // 추가
    private $reply;

    // 생성자를 통해 PostModel 객체 생성
    public function __construct()
    {
        $this->post = new Post();
        // 추가
        $this->reply = new Reply();
    }
	...

    /**
     * 게시글 삭제 기능을 담당
     * @return void
     */
    public function delete()
    {
        $idx = $_POST['idx'];
        $pw = $_POST['pw'];

        if ($this->parametersCheck($idx, $pw)) {
            if ($this->post->delete($idx, $pw)) {
            	// 추가
                $this->reply->deleteReplies($idx);
                $this->redirect('/bbs', '글이 삭제되었습니다.');
            } else {
                $this->redirectBack('글 삭제에 실패했습니다.');
            }
        } else {
            $this->redirectBack('입력되지 않은 값이 있습니다.');
        }
    }

    ...
}

여기는 한 줄을 추가합시다

bbs/Controller/ReplyController.php

<?php

namespace Controller;

use Model\Reply;

class ReplyController extends BaseController
{
    ...
    
    /**
     * 댓글 삭제 기능을 담당
     * @return void
     */
    public function delete()
    {
        $replyIdx = $_POST['reply_idx'];
        $pw = $_POST['pw'];

        if ($this->parametersCheck($replyIdx, $pw)) {
        	// 추가
            $this->reply->deleteSubReplies($replyIdx);
            $this->echoJson($this->reply->delete($replyIdx, $pw));
        } else {
            $this->echoJson(['result' => false, 'msg' => '입력되지 않은 값이 있습니다.']);
        }
    }
}

 

자 끝입니다, 결과를 볼까요

반응형

'PHP > Modern PHP' 카테고리의 다른 글

[PHP] 게시판 만들기 with MVC - 11 SubReply  (0) 2023.12.28
[PHP] 게시판 만들기 with MVC - 10부 Reply(Update & Delete)  (2) 2023.12.28
[PHP] 게시판 만들기 with MVC - 9부 Reply(List & Create)  (1) 2023.12.28
[PHP] 게시판 만들기 with MVC - 8부 Lock  (0) 2023.12.28
[PHP] 게시판 만들기 with MVC - 7부 Update & Delete  (0) 2023.12.27
  1. 개요
  2. Model
  3. Controller
'PHP/Modern PHP' 카테고리의 다른 글
  • [PHP] 게시판 만들기 with MVC - 11 SubReply
  • [PHP] 게시판 만들기 with MVC - 10부 Reply(Update & Delete)
  • [PHP] 게시판 만들기 with MVC - 9부 Reply(List & Create)
  • [PHP] 게시판 만들기 with MVC - 8부 Lock
DSeung
DSeung
DSeung
Dev log
DSeung
  • 분류 전체보기 (192)
    • PHP (62)
      • Laravel (31)
      • Error (5)
      • Setting (11)
      • Modern PHP (15)
    • Go Lang (51)
      • Study (30)
      • Algorithm (17)
      • Setting (1)
      • Error (3)
    • Java (11)
      • Spring (3)
      • JSP (0)
      • Error (2)
      • Setting (2)
      • 단축키 (2)
    • JavaScript (6)
      • Modern JavaScript (4)
      • Node (1)
    • Android Kotlin (5)
      • Study (4)
      • Error (1)
    • 컴퓨팅 기술 (12)
      • 데이터베이스시스템 (4)
      • Docker (2)
      • 크롤링 & 스크래핑 (1)
      • API (1)
      • 클라우드 (1)
      • 네트워크 (1)
    • MySQL (7)
    • AWS (1)
    • Git (5)
      • GItLab (1)
      • GitHub (4)
    • 도메인 (2)
      • 안과 (2)
    • 자격증 (7)
      • SQLD (1)
      • 정보처리기사 (6)
    • Mac os (1)
    • 나머지 (13)
      • tistory (1)
      • 기타 (9)
      • 일기 (3)
    • 독서 (9)

인기 글

최근 글

블로그 메뉴

  • 홈
  • 태그
전체
오늘
어제
hELLO · Designed By 정상우.v4.2.0
DSeung
[PHP] 게시판 만들기 with MVC - 12 Delete Dummy
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.