라라벨 오류 도움 좀 부탁드립니다T.T

조회수 1543회

이미지

DB에 수정된 정보를 업데이트를 하던 도중 어려움을 겪어서 질문 드립니다.

<?php

namespace App\Http\Controllers;

//use Illuminate\Http\Request;
use Request;

use App\Http\Requests;
use App\board;

public function update($id) 
{
$board = board::findOrFail($id);

$title = Request::input('title');
$body = Request::input('body');

$board->update(array('title'->$title, 'body'->$body));
return redirect()->route('board.index');
}


업데이트 관련 메소드 내용이구요

<form method="post" action="{{ route('board.update', $boards->id) }}">
    <input type="hidden" name="_token" value="{{csrf_token()}}">
    <input name="_method" type="hidden" value="PATCH">


이렇게가 업데이트 관련 php 소스입니다만, 폼을 전송하고 나면

MethodNotAllowedHttpException in RouteCollection.php line 218:
이와같은 오류가 나와 어려움을 겪고 있습니다.ㅜㅜ.. 도움 좀 부탁드립니다.



  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 위에 라우팅 테이블을 보시면 board.update는 PUT, PATCH 요청만 허용을 하는상태인데

    위의 form에서는 요청 method가 post라서 그렇습니다.

    routes.php에서 POST도 허용을 해주거나 폼에

    <input type="hidden" name="_method" value="PATCH">
    

    이런식으로 명시를 해주어야합니다.

    위방식보단 그냥 post도 허용하는게 더 쉽고 빠르겠네요

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 폼 태그안에 명시되어 있습니다..ㅜㅜ 레스트풀 컨트롤러를 사용해서 라우트가 스스로 적용된 것인데 post를 허용해주는 방법이 있을까요? 알 수 없는 사용자 2016.8.31 20:41
    • 아마 routes.php 보시면 Route::match(['put', 'patch'] 이런식으로 되어있을텐데 Route::match(['get', 'patch', 'post'] 이렇게 post를 넣어보세요 알 수 없는 사용자 2016.8.31 23:26

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)