Laravel
Laravelの405エラー(Method Not Allowed)の解決方法
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
オススメ本
Laravel の 405 エラー(Method Not Allowed)の解決方法について書きました。
下のようなエラー内容です。
The GET method is not supported for this route. Supported methods: POST.
開発環境
Laravel 11
PHP 8.3
原因
ルーティングが POST なのに、GET で接続しようとしている
web.php を確認します。
以下のようにルーティングが書かれています。
Route::post('memo', [MemoController::class, 'store'])->name('memo.store');
この POST メソッドに対して、ブラウザなどで接続しようとすると、GET での接続になるため該当のエラーが発生します。
例えば、
http://localhost/memo
これだと 405 エラーが発生します。
解決方法
GET と POST をしっかり確認する
どういう機能を付けたくてこのエラーに辿り着くのかは人それぞれになってしまうので、落ち着いて GET と POST を確認してみてください。
ルーティング(web.php)の記述を GET と POST で迷っている時
ページを表示したいなら GET
ページを表示したい時は GET でルーティングを作ります。
例えば、メモの一覧ページを作る場合は、以下のように GET で作りましょう。
Route::get('memo', [MemoController::class, 'index'])->name('memo.index');
データを入力したいなら POST
データを入力してもらい、何かを保存するような機能のためのときであれば POST でルーティングを作ります。
例えば、メモの登録機能を作る場合は、以下のように POST でつくりましょう。
Route::post('memo', [MemoController::class, 'store'])->name('memo.store');
まとめ
以上です。
よくやる凡ミスシリーズについて解説しました。自分も結構やります。
誰かの助けにな れば幸いです。
人気記事