ホーム > Laravel > Laravelの405エラー(Method Not Allowed)の解決方法
Laravel

Laravelの405エラー(Method Not Allowed)の解決方法

いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。

⇨ Laravel 記事の目次はこちら

Laravel の 405 エラー(Method Not Allowed)の解決方法について書きました。

下のようなエラー内容です。

The GET method is not supported for this route. Supported methods: POST.

Laravelの405エラー画像

開発環境

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');

まとめ

以上です。

よくやる凡ミスシリーズについて解説しました。自分も結構やります。

誰かの助けになれば幸いです。

人気記事

PHP7.4 + Laravel6 のプロジェクトを AWS EC2 にデプロイする

Docker で Laravel 11 の開発環境を構築する方法【動画あり】