Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 1: 파라미터로 넘어온 id 로 프로젝트를 검색한 후에 REF: 연관 모델 삭제 에서 설명한대로 task 모델이 있을 경우 project 모델을 삭제할 수 없으므로 먼저 모든 자식 task를 삭제합니다. 모든 자식 모델을 가져오는 코드는 $proj->task 처럼 dynamic property를 사용해도 되지만 개인적으로는 혼동이 되어 명확하게 니다() 를 사용하는 실수를 하는 경우가 많아서 $proj->tasks()->get() 방식으로 사용하는 것을 선호합니다.
  • 2:  모델의 delete() 메소드를 호출하여 데이타를 삭제합니다. 
  • 23: 처리한 결과를 message 를 키로 하여 세션에 넣은 후에 인덱스 페이지에 전달합니다. 

...

Code Block
<form method="POST" action="{{ route('project.destroy', $proj->id) }}">	// 1
    {{ csrf_field() }}
    {!!{ method_field('DELETE') !!}}	//2
    <button type="submit" class="btn btn-danger">
        삭제
    </button>
</form>

show 뷰는 특별한 내용은 없으며 하단에는 프로젝트에 속하는 태스트를 볼 수 있는 project.task.index 라우팅을 연결합니다.

  • 1 : 삭제를 수행하는 project.destroy 라우팅에 연결합니다.
  • 2:  HTTP 의 DELETE 메소드를 사용해야 하므로 method_field() 의 파라미터로 DELETE 를 사용합니다.

이제 기능 구현이 끝났습니다. 브라우저에서 "삭제" 버튼을 클릭하여 정상적으로 동작하는 지 확인해 봅시다.