카테고리 없음

laravel 라라벨 form 메서드 스푸핑

백위한 2024. 5. 9. 21:25

HTML form은 PUT, PATCH, DELETE 작업을 지원하지 않는다.

그래서 HTML 폼에서 PUT, PATCH, DELETE 경로를 정의할 때는 _method의 숨겨진 필드를 지정해야 한다.

_method 필드로 보내진 값은 HTTP request 메서드를 판별하는데 사용된다.

 

<form action="/example" method="POST">
    <input type="hidden" name="_method" value="PUT">
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

 

편의를 위해 @method 블레이드 지시어를 사용해 _method 입력 필드를 생성할 수 있다.

 

<form action="/example" method="POST">
    @method('PUT')
    @csrf
</form>

 

아래는 @method 블레이드 지시어 DELETE를 사용해 만든 게시글 삭제 코드이다.

 

<form action="{{route('boards.delete', $board->id)}}" method="post">
    @csrf
    @method('delete')
    <button type="submit" class="btn btn-danger" data-toggle="modal" data-target="#confirmDeleteModal">삭제</button>
</form>