php - 如何修复 Laravel 7 中此路由不支持 POST 方法的更新错误
问题描述
我是 laravel 的新手,我正在尝试为一个简单的 CRUD 项目创建一个 Todo 应用程序,但我收到一个错误消息
此路由不支持 POST 方法。支持的方法:GET、HEAD、PUT、PATCH、DELETE。
我一直在寻找解决方案并尝试所有方法,但不知何故该解决方案无法解决我的错误。
web.php
Route::get('/', 'TaskController@index');
Route::resource('task','TaskController');
TaskController
public function edit(Task $task)
{
return view('task.edit')->with('task', $task);
}
public function update(Request $request, Task $task)
{
$task->update($request->all());
return redirect('/');
}
edit.blade.php
<form action="{{route('task.update', $task->id)}}" method="POST">
@csrf
method('PATCH')
<div class="input-group mb-3 w-100">
<input type="text" class="form-control form-control-lg" name="title" value="{{$task->title}}" aria-label="Recipient's username" aria-describedby="button-addon2">
<div class="input-group-append">
<button class="btn btn-success" type="submit" id="button-addon2">Update</button>
<div>
<div>
</form>
路线清单:
解决方案
更新操作传统上是通过PUT
orPATCH
调用完成的。表单不支持这一点,但Laravel
支持使用 name 进行隐藏输入字段_method
,指示它是否应该是PUT
.
你的语法不正确,应该是。
<form action="{{route('task.update', $task->id)}}" method="POST">
@csrf
@method('PATCH')
推荐阅读
- scala - 如何更新火花数据框中的列值
- sql - 使用 Azure Eventhub + Logic 应用的 SQL Server 并行插入
- insert - 插入包含集合导航属性的实体
- git - 创建 git 合并报告以显示发布中待处理的合并的过程
- spring-boot - Spring Batch 除外时的性能和内存不足错误
- python - 如何在采样传感器时使用多处理来绘制数据?
- maven - 使用基本身份验证的存储库身份验证仅在嵌入 URL 时有效
- python - Python - 如何在遍历列表时处理异常?
- flutter - 将 Datawedge 与颤振一起使用
- android - 我想做一张室内地图。我怎样才能完成一个真正的地图/webview,比如在其中滚动?