LaravelにてCRUDアプリを製作しているのですが、編集機能をつける段階のところでエラーが出てしまいました。
The PUT method is not supported for this route. Supported methods: POST.
そこで、https://readouble.com/laravel/8.x/ja/routing.htmlや
https://qiita.com/takeshisakuma/items/8d33b1f10b273f0050b1等、参考にして原因を探ってみましたが、自分が未熟なため原因がわからず解決ができていない状態です。
ぜひ、原因がわかる方がいらっしゃればご教示いただけると幸いです。よろしくお願いいたします。
story/edit.blade.php
laravel
<form method="POST" action="{{route('story.update',['id' =>$story->id])}}"> @method('put') @csrf <div class="form-group"> <label for="name">ニックネーム</label> <input type="text" name="name" value="{{old('name',$story->name)}}" class="form-control" id="title" placeholder="Enter Title"> </div>
routes/web.php
laravel
Route::group(['prefix'=>'story'], function () { Route::get('index', 'StoryController@index')->name('story.index'); Route::get('create', 'StoryController@create')->name('story.create'); Route::post('store', 'StoryController@store')->name('story.store'); Route::get('show/{id}', 'StoryController@show')->name('story.show'); Route::get('edit/{id}', 'StoryController@edit')->name('story.edit'); Route::post('update/{id}', 'StoryController@update')->name('story.update'); });
Controllers/StoryController.php
laravel
public function edit($id) { $story=Story::find($id); return view('story.edit', compact('story')); } public function update(Request $request, Story $story) { $inputs=$request->validate([ 'name'=>'required|max:255', 'univ'=>'required|max:255', 'facu'=>'required|max:255', 'school_name'=>'required|max:255', 'way'=>'required', 'univlife'=>'required' ]); $story->name=$request->name; $story->univ=$request->univ; $story->facu=$request->facu; $story->year=$request->year; $story->graduate=$request->graduate; $story->pref=$request->pref; $story->school_name=$request->school_name; $story->way=$request->way; $story->univlife=$request->univlife; $story->user_id=auth()->user()->id; $story->save(); return redirect('story/index'); }
まだ回答がついていません
会員登録して回答してみよう