Apabila menyerahkan borang edit pada halaman dalam Laravel, anda mungkin menghadapi ralat berikut:
The POST method is not supported for this route. Supported methods: GET, HEAD.
Ralat ini boleh membingungkan, terutamanya untuk pemula dalam Laravel. Mari kita mendalami isu ini dan berikan penyelesaian.
Mesej ralat menunjukkan bahawa kaedah POST tidak disokong untuk laluan semasa. Ini berlaku apabila borang yang cuba menggunakan kaedah POST diserahkan kepada laluan yang ditakrifkan untuk kaedah lain, seperti GET.
Dalam Laravel, laluan ditakrifkan dalam web .php terletak dalam direktori laluan. Mari semak laluan untuk halaman edit:
<code class="php">// web.php Route::group(['middleware' => 'auth'], function () { Route::put('/edit', 'ProjectController@update'); }); Route::get('/projects/{id}/edit', 'ProjectController@edit');</code>
Perhatikan laluan untuk mengedit ditakrifkan menggunakan kaedah put, manakala laluan untuk memaparkan borang edit ditakrifkan menggunakan kaedah get. Ralat berlaku kerana borang cuba MENYATAKAN data ke laluan edit, yang bertujuan untuk mengendalikan operasi kemas kini melalui kaedah PUT.
Untuk menyelesaikan isu ini, pastikan laluan untuk menyerahkan borang edit mempunyai kaedah yang betul. Dalam kes ini, laluan edit hendaklah ditakrifkan seperti berikut:
<code class="php">// web.php Route::group(['middleware' => 'auth'], function () { Route::post('/edit', 'ProjectController@update'); }); Route::get('/projects/{id}/edit', 'ProjectController@edit');</code>
1. Pembersihan Cache:
Selepas membuat perubahan penghalaan, adalah penting untuk mengosongkan cache laluan menggunakan arahan berikut:
php artisan route:cache
Ini akan mengosongkan laluan yang dicache sebelum ini dan memaksa Laravel membina semula laluan daripada fail web.php, memastikan laluan yang paling terkini digunakan.
2. Kaedah dan Tindakan Borang:
Pastikan borang anda mempunyai set kaedah yang betul (siaran) dan menunjuk ke laluan yang sesuai (/edit) dalam atribut tindakan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Kaedah POST Tidak Disokong untuk Laluan Ini\' dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!