라라벨 오류 도움 좀 부탁드립니다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
-
댓글 입력