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


이미지

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:
이와같은 오류가 나와 어려움을 겪고 있습니다.ㅜㅜ.. 도움 좀 부탁드립니다.



  • 2016년 08월 30일에 작성됨
    (html, css, bootstrap, javascript, jquery, ajax, json)

조회수 126


1 답변


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

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

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

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

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

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

  • 2016년 08월 30일에 작성됨
    웹을 좋아함

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

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close