Laravel8
Laravel初心者が下記のエラーで困って意外なところで解決した話。
The GET method is not supported for this route. Supported methods: POST.
ま~さすがに初心者と言えど、
Route::post('/post', [App\Http\Controllers\PostController::class, 'store'])->name('post.store');
Route::post('/confirm', [App\Http\Controllers\PostController::class, 'confirm'])->name('post.confirm');
のpostをgetで書いてました。。なんてことはないっすよ。。さすがに。。
<form id="formForm" action="{{ route('post.store') }}" method="post"...
Googleで調べても出てくることは出てくるけどいまいち解決しない。。
よしもとの感想としては、「ちゃんとPOSTにしてるってば!!」ってな感じ。。
function confirm(PostRequest $request)
{
調子こいてValidationを上みたいにPostRequestにしてたからかな~と思ってもとのRequestに戻してみたりしたけどあかん。。
ひたすら、
The GET method is not supported for this route. Supported methods: POST.
からの
C:....\vendor\laravel\framework\src\Illuminate\Routing\AbstractRouteCollection.php:117
の一点張り。。。
まじで「ちゃんとPOSTにしてるから処理を進めろってば!」と思ってハマってたところ、
ふと下の方の一文が気になった。
.....
return back();
そしてふとおもた。
もしかして「帰ったらまずいのか?(  ̄− ̄) 」
今回はこれが正解やった。
.....
//return back();
return view('welcome');
とかやったらサクっと解決した。。。
つまり、
The GET method is not supported for this route. Supported methods: POST.
てっきり処理の最初で止められてると思い込んでたけど、
本当に止められていたのは処理の最後だった。。
という話。思い込みって怖いな~。。
文からすると最初で門前払い食らってるように見えるんやけどな~。。。