前提
laravelを使ってkitaアプリを作成しています。
パスワード更新機能を作成しようとしたところ@method('put')を指定しているのにThe PUT method is not supported for route profile. Supported methods: GET, HEAD, POSTというエラーが表示されて解決できません。
発生している問題・エラーメッセージ
機能を実装したところエラーが出てしまいました。
どうしてputで投稿できないかがさっぱりわからないので教えていただけると嬉しいです。
よろしくお願いいたします。
The PUT method is not supported for route profile. Supported methods: GET, HEAD, POST.
該当のソースコード
web.php
1<?php 2use Illuminate\Support\Facades\Route; 3use App\Http\Controllers\Auth\RegisterController; 4use App\Http\Controllers\Auth\LoginController; 5use App\Http\Controllers\ArticlesController; 6use App\Http\Controllers\CommentsController; 7use App\Http\Controllers\ProfileController; 8use App\Http\Controllers\PasswordController; 9 10/* 11|-------------------------------------------------------------------------- 12| Web Routes 13|-------------------------------------------------------------------------- 14| 15| Here is where you can register web routes for your application. These 16| routes are loaded by the RouteServiceProvider within a group which 17| contains the "web" middleware group. Now create something great! 18| 19*/ 20Route::get('/', function () { 21 return view('example'); 22}); 23Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); 24// 会員登録ルート 25Route::get('/member_registration', [RegisterController::class, 'showRegistrationForm'])->name('register'); 26Route::post('/member_registration', [RegisterController::class, 'register']); 27// ログインルート 28Route::get('login', [LoginController::class, 'showLoginForm'])->name('login'); 29Route::post('login', [LoginController::class, 'login']); 30// ログアウトルート 31Route::post('logout', [LoginController::class, 'logout'])->name('logout'); 32//記事一覧機能 33Route::get('/articles', [ArticlesController::class, 'index'])->name('index'); 34//記事検索機能 35Route::get('/articles/search', [ArticlesController::class, 'search'])->name('articles.search'); 36//記事作成機能 37Route::get('/articles/create', [ArticlesController::class, 'showCreatePage'])->name('articles.create'); 38Route::post('/articles', [ArticlesController::class, 'store'])->name('store'); 39//記事編集機能 40Route::get('/articles/{id}/edit', [ArticlesController::class, 'showEditPage'])->name('articles.edit'); 41Route::post('/articles/{id}', [ArticlesController::class, 'update'])->name('update'); 42//記事詳細表示機能 43Route::get('/articles/{id}', [ArticlesController::class, 'show'])->name('articles.show'); 44//コメント投稿機能 45Route::post('/articles/{id}', [CommentsController::class, 'store'])->name('comments.store'); 46//記事削除機能 47Route::delete('/artilces/{id}', [ArticlesController::class, 'delete'])->name('articles.delete'); 48//プロフィール編集ページに遷移 49Route::get('/profile', [ProfileController::class, 'showEditProfilePage'])->name('profile.edit')->middleware('auth'); 50//プロフィール編集機能 51Route::post('/profile', [ProfileController::class, 'update'])->name('profile.update')->middleware('auth'); 52// パスワード変更機能 53Route::put('/password_change', [PasswordController::class, 'changePassword'])->name('password.update')->middleware('auth'); 54
passwordcontroller.php
1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Illuminate\Support\Facades\Auth; 7use Illuminate\Support\Facades\Hash; 8use Illuminate\Support\Facades\Validator; 9 10class PasswordController extends Controller 11{ 12 // 13 public function changePassword(Request $request) { 14 $member = Auth::user(); 15 16 $validator = Validator::make($request->all(), [ 17 'password' => 'required|string|min:8|confirmed', 18 ]); 19 20 if ($validator->fails()) { 21 return redirect()->route('profile.edit')->withErrors($validator)->withInput(); 22 } 23 24 $member->password = Hash::make($request->input('password')); 25 $member->save(); 26 27 return redirect()->route('profile.edit')->with('message', 'プロフィールを編集しました。'); 28 } 29} 30
profile.blade.php
1 <div class="col-md-3 px-0"> 2 <button type="button" class="btn btn-success rounded-pill" data-bs-toggle="modal" data-bs-target="#passwordChangeModal">パスワードを変更する</button> 3 </div> 4 <!-- パスワード変更モーダル --> 5 <div class="modal fade" id="passwordChangeModal" tabindex="-1" aria-labelledby="passwordChangeModalLabel" aria-hidden="true"> 6 <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable"> 7 <div class="modal-content"> 8 <!-- モーダルのヘッダー --> 9 <div class="modal-header"> 10 <h5 class="modal-title" id="passwordChangeModalLabel">パスワードを変更する</h5> 11 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 12 </div> 13 14 <!-- モーダルのボディ --> 15 <div class="modal-body"> 16 <div class="form px-3"> 17 {{ Form::open(['route' => 'password.update', 'files' => true, 'method' => 'PUT']) }} 18 @method('PUT') 19 @csrf 20 <input type="hidden" name="_method" value="PUT"> 21 <!--新しいパスワード--> 22 <div class="row pt-3"> 23 {{Form::label('password', '新しいパスワード', ['class' => 'col-md-12 col-12 px-0'])}} 24 </div> 25 26 <div class="row pt-1"> 27 {{Form::text('password', null, ['class'=>'title col-md-12 col-12 border border-success mt-2 rounded'])}} 28 </div> 29 30 <!--確認用のパスワード--> 31 <div class="row pt-3"> 32 {{Form::label('password_confirmation', '新しいパスワード(確認)', ['class' => 'col-md-12 col-12 px-0'])}} 33 </div> 34 35 <div class="row pt-1"> 36 {{Form::text('password_confirmation', null, ['class'=>'title col-md-12 col-12 border border-success mt-2 rounded'])}} 37 </div> 38 39 <!--更新ボタン--> 40 <div class="row"> 41 <div class="col-md-12 col-12 text-md-end px-0"> 42 {{Form::submit('更新する', ['class'=>'submit_button btn btn-success my-3 rounded-pill'])}} 43 </div> 44 </div> 45 {{ Form::close() }} 46 </div> 47 </div> 48 </div> 49 </div> 50 </div> 51 </div> 52 <!--投稿ボタン--> 53 <div class="row"> 54 <div class="col-md-12 col-12 text-md-end px-0"> 55 {{Form::submit('更新する', ['class'=>'submit_button btn btn-success my-3 rounded-pill'])}} 56 </div> 57 </div> 58 {{ Form::close() }} 59 </div> 60 </div> 61 </div> 62 </div> 63 </div> 64@endsection 65
試したこと
@method('put')を適用。
フォームの修正
キャッシュのクリア
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。