Laravel8]The GET method is not supported for this route. Supported methods: POST.の原因と解決策知りたい。
[Laravel8]The GET method is not supported for this route. Supported methods: POST.の原因と解決策知りたい。
Qiitq初投稿の未経験エンジニアです。質問の仕方に不備がありましたら申し訳ありません。
現在Laravel8でECサイトを製作中です。
お問合せフォームを実装中に上記のエラーが出てしまいます。
どなたか解決方法を教えていただけると助かります。
お問合せフォーム→確認画面→メール送信→送信完了画面という実装になっています。
確認画面までは表示できており、送信ボタンを押すと上記のエラーが出ます。
確認画面から送信ボタンを押すとエラー表示
The GET method is not supported for this route. Supported methods: POST.
該当するソースコード
Route::prefix('contact')->middleware('auth:users')->group(function(){
Route::get('/', [ContactController::class, 'index'])->name('contact.index');
Route::post('confirm', [ContactController::class, 'confirm'])->name('contact.confirm');
Route::post('thanks', [ContactController::class, 'send'])->name('contact.send');
});
<?php
namespace App\Http\Controllers\User;
use App\Http\Controllers\Controller;
use App\Mail\ContactSendmail;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class ContactController extends Controller
{
/**
* お問合せ画面表示
*
* @return Illuminate\Support\Facades\View
*/
public function index()
{
return view('user.contact.index');
}
/**
* お問合せ内容確認画面表示
*
* @param Request $request
* @return Illuminate\Support\Facades\View
*/
public function confirm(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required|email',
'title' => 'required',
'contact' => 'required',
]);
$inputs = $request->all();
return view('user.contact.confirm',
compact('inputs'));
}
/**
* thanksメール送信機能表示
*
* @param Request $request
* @return Illuminate\Support\Facades\View
*/
public function send(Request $request)
{
$request->validate([
'name' => 'required',
'email' => 'required|email',
'title' => 'required',
'contact' => 'required',
]);
$action = $request->input('action');
$inputs = $request->except('action');
dd($inputs);
if($action !== 'submit'){
return redirect()
->route('user.contact.index')
->withInput($inputs);
} else {
Mail::to($inputs['email'])->send(new ContactSendmail($inputs));
$request->session()->regenerateToken();
return view('user.contact.thanks');
}
}
}
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
お問い合わせ
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 bg-white border-b border-gray-200">
<form method="POST" action="{{ route('user.contact.confirm') }}">
@csrf
<!-- Name -->
<div>
<x-label for="name" :value="__('名前')" />
<x-input id="name" class="block mt-1 w-full" type="text" name="name" :value="old('name')" required autofocus />
@if ($errors->has('name'))
<p class="error-message">{{ $errors->first('name') }}</p>
@endif
</div>
<!-- Email Address -->
<div class="mt-4">
<x-label for="email" :value="__('メールアドレス')" />
<x-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required />
@if ($errors->has('email'))
<p class="error-message">{{ $errors->first('email') }}</p>
@endif
</div>
<div class="mt-4">
<x-label for="title" :value="__('タイトル')" />
<x-input id="title" class="block mt-1 w-full" type="text" name="title" :value="old('title')" required />
@if ($errors->has('title'))
<p class="error-message">{{ $errors->first('title') }}</p>
@endif
</div>
<!-- contact -->
<div class="mt-4">
<x-label for="contact" :value="__('お問い合わせ内容')" />
<x-textarea id="contact" class="block mt-1 w-full" type="text" name="contact" :value="old('contact')" required />
@if ($errors->has('contact'))
<p class="error-message">{{ $errors->first('contact') }}</p>
@endif
</div>
<div class="flex items-center justify-end mt-4">
<x-button class="ml-4">
{{ __('送信') }}
</x-button>
</div>
</form>
</div>
</div>
</div>
</div>
</x-app-layout>
<x-app-layout>
<x-slot name="header">
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
お問い合わせ内容確認
</h2>
</x-slot>
<div class="py-12">
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
<div class="bg-white overflow-hidden shadow-sm sm:rounded-lg">
<div class="p-6 bg-white border-b border-gray-200">
<form method="POST" action="{{ route('user.contact.send') }}">
@csrf
<div>
<x-label for="name" :value="__('名前')" />
{{ $inputs['name'] }}
<x-input id="name" class="block mt-1 w-full" type="hidden" name="name" :value={{ $inputs['name'] }} />
</div>
<div class="mt-4">
<x-label for="email" :value="__('メールアドレス')" />
{{ $inputs['email'] }}
<x-input id="email" class="block mt-1 w-full" type="hidden" name="email" :value={{ $inputs['email'] }} />
</div>
<div class="mt-4">
<x-label for="title" :value="__('タイトル')" />
{{ $inputs['title'] }}
<x-input id="title" class="block mt-1 w-full" type="hidden" name="title" :value={{ $inputs['title'] }} />
</div>
<div class="mt-4">
<x-label for="contact" :value="__('お問い合わせ内容')" />
{{ $inputs['contact'] }}
<x-input id="contact" class="block mt-1 w-full" type="hidden" name="contact" :value={{ $inputs['contact'] }} />
</div>
<div class="flex items-center justify-end mt-4">
<x-button class="ml-4" value="back" type="button" onclick="location.href='{{ route('user.contact.index')}}'">
{{ __('入力画面に戻る') }}
</x-button>
<x-button class="ml-4">
{{ __('送信') }}
</x-button>
</div>
</form>
</div>
</div>
</div>
</div>
</x-app-layout>
自分で試したこと
キャッシュ等のクリア
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear