web-dev-qa-db-ja.com

Laravel 5.4-リソースの更新

Laravel 5.4を学ぶためにブログの投稿を作成しています。投稿をどこにでも更新する方法の例を見つけるのに苦労しています。

私のフォームは次のとおりです

<form method="POST" action="/posts/{{ $post->id }}/edit">
    {{ csrf_field() }}

    <div class="form-group">
        <label for="title">Title</label>
        <input name="title" type="text" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" value="{{ $post->title }}" required>
    </div>
    <div class="form-group">
        <label for="description">Description</label>
        <input name="description" type="text" class="form-control" id="exampleInputPassword1" value="{{ $post->title }}" required>
    </div>

    <div class="form-group">
        <button type="submit" class="btn btn-primary">Update</button>
    </div>
</form>

私のルートは次のとおりです

Route::get('/posts/{post}/edit', 'PostsController@edit');

Route::patch('/posts/{post}', 'PostsController@update');

そして私のコントローラーメソッドは

public function edit( Post $post )
{
    return view('posts.edit', compact('post'));
}

public function update(Request $request, Post $post )
{
    Post::where('id', $post)->update($request->all());

    return redirect('home');

}

私はMethodNotAllowedHTTPExceptionエラーを受け取りますが、これがどの部分で間違っているのかわかりません。

これは、PATCH関数を使用しているポイント、または新しい値を大量に割り当てる方法である可能性があると想定しています。どんな助けでも大歓迎です。

4
rushtoni88

APIを構築するとき、Eloquentモデルと実際にアプリケーションのユーザーに返されるJSON応答の間に位置する変換レイヤーが必要になる場合があります。 Laravelのリソースクラスを使用すると、モデルとモデルコレクションを表現力豊かかつ簡単にJSONに変換できます。

0
user12810415