Laravel のページで編集フォームを送信すると、次のエラー:
The POST method is not supported for this route. Supported methods: GET, HEAD.
このエラーは、特に Laravel の初心者にとっては困惑する可能性があります。問題を詳しく調べて解決策を提供しましょう。
エラー メッセージは、POST メソッドが現在のルートでサポートされていないことを示しています。これは、POST メソッドを使用しようとするフォームが、GET などの他のメソッドに定義されたルートに送信されるときに発生します。
Laravel では、ルートは Web で定義されます。 .php はルートディレクトリにあります。編集ページのルートを確認してみましょう:
<code class="php">// web.php Route::group(['middleware' => 'auth'], function () { Route::put('/edit', 'ProjectController@update'); }); Route::get('/projects/{id}/edit', 'ProjectController@edit');</code>
編集用のルートは put メソッドを使用して定義され、編集フォームを表示するルートは get メソッドを使用して定義されていることに注意してください。このエラーは、フォームが PUT メソッドを介して更新操作を処理することを目的とした編集ルートにデータを POST しようとしているために発生します。
この問題を解決するには、編集フォームを送信するルートに正しい方法。この場合、編集ルートは次のように定義する必要があります:
<code class="php">// web.php Route::group(['middleware' => 'auth'], function () { Route::post('/edit', 'ProjectController@update'); }); Route::get('/projects/{id}/edit', 'ProjectController@edit');</code>
1.キャッシュクリアランス:
ルーティングを変更した後、次のコマンドを使用してルートキャッシュをクリアすることが重要です:
php artisan route:cache
これにより、以前にキャッシュされたルートがクリアされ、Laravel が強制的に再構築されます。 web.php ファイルからのルート。最新のルートが使用されるようにします。
2.フォームのメソッドとアクション:
フォームに正しいメソッドが設定され (post)、アクション属性で適切なルート (/edit) を指していることを確認してください。
以上がLaravel で「このルートでは POST メソッドがサポートされていません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。