我正在嘗試使用 Laravel 9 創建一個簡單的 CRUD 應用程式。我遇到了 HTML 表單的問題。我創建了一個頁面,您可以在其中編輯資料庫中存在的兔子資料。
我的表格
<form name="editRabbitForm" action="{{ url('/rabbit/update') }}" method="PUT">
{{ csrf_field() }}
<!-- here be input fields -->
<button type="submit" class="btn btn-success">Save</button>
<a type="button" href="/rabbits" class="btn btn-danger">Cancel</a>
</form>
web.php路線
<?php
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\QuoteController;
use App\Http\Controllers\RabbitController;
use Illuminate\Support\Facades\Route;
Route::get('/rabbits', [RabbitController::class, 'index']);
Route::get('/rabbit/edit/{id}', [RabbitController::class, 'edit']);
Route::put('/rabbit/update', [RabbitController::class, 'update']);
RabbitController.php
<?php
namespace App\Http\Controllers;
use App\Models\Rabbit;
use Illuminate\Http\Request;
class RabbitController extends Controller
{
public function index() {
return view('rabbits.index', ['rabbits' => Rabbit::all()]);
}
public function edit($id) {
return view('rabbits.edit', ['rabbit' => Rabbit::where('breed_id', $id)->first()]);
}
public function update(Request $request) {
echo("SOME SORT OF RESULT!");
var_dump($request);
}
}
在我什至點擊控制器之前,我得到一個例外讀數:
The GET method is not supported for this route. Supported methods: PUT.

在這種情況下,我真的不明白我做錯了什么
uj5u.com熱心網友回復:
正如我在上面的評論中所說:
要發送 put 請求,您需要更改methodtoPOST并添加@method('PUT')到您的表單中。這將為該方法插入一個隱藏的輸入。然后,Laravel 會自動將此請求路由到路由檔案中 put 路由指定的方法。
GET這是必需的,因為正如@ADyson 所寫,瀏覽器僅限于POST請求。
最后但并非最不重要的一點是,瀏覽器或在這種情況下的 HTML 表單是愚蠢的。也許有一天這會改變,誰知道呢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/445103.html
