質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

Q&A

解決済

1回答

2345閲覧

@method('put')としてもエラーで疑似フォームが作成できない

asahio

総合スコア2

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

0グッド

1クリップ

投稿2022/01/11 17:31

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

1<form method="POST" action="{{route('story.update',['id' =>$story->id])}}"> 2 @method('put') 3 @csrf 4 <div class="form-group"> 5 <label for="name">ニックネーム</label> 6 <input type="text" name="name" value="{{old('name',$story->name)}}" class="form-control" id="title" placeholder="Enter Title"> 7 </div>

routes/web.php

laravel

1Route::group(['prefix'=>'story'], function () { 2 Route::get('index', 'StoryController@index')->name('story.index'); 3 Route::get('create', 'StoryController@create')->name('story.create'); 4 Route::post('store', 'StoryController@store')->name('story.store'); 5 Route::get('show/{id}', 'StoryController@show')->name('story.show'); 6 Route::get('edit/{id}', 'StoryController@edit')->name('story.edit'); 7 Route::post('update/{id}', 'StoryController@update')->name('story.update'); 8});

Controllers/StoryController.php

laravel

1 public function edit($id) 2 { 3 $story=Story::find($id); 4 5 return view('story.edit', compact('story')); 6 } 7 8 9 public function update(Request $request, Story $story) 10 { 11 $inputs=$request->validate([ 12 'name'=>'required|max:255', 13 'univ'=>'required|max:255', 14 'facu'=>'required|max:255', 15 'school_name'=>'required|max:255', 16 'way'=>'required', 17 'univlife'=>'required' 18 ]); 19 20 21 $story->name=$request->name; 22 $story->univ=$request->univ; 23 $story->facu=$request->facu; 24 $story->year=$request->year; 25 $story->graduate=$request->graduate; 26 $story->pref=$request->pref; 27 $story->school_name=$request->school_name; 28 $story->way=$request->way; 29 $story->univlife=$request->univlife; 30 $story->user_id=auth()->user()->id; 31 32 $story->save(); 33 34 return redirect('story/index'); 35 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ルーティングでputを待ち受けないと定義と呼び出しの整合性がとれません。

php

1Route::put('update/{id}', 'StoryController@update')->name('story.update');

readouble参考にされたようですが「利用可能なルーターメソッド」の項にありますよ。

投稿2022/01/11 20:43

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問