You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel8删除数据报错:当前路由不支持DELETE方法

报错原因

Laravel 资源路由(resource)的删除接口匹配规则为 接收DELETE方法请求,路径为/datasekolah/datasiswa/{资源ID}。你当前视图中的删除表单action属性仅填写了/datasekolah/datasiswa,没有携带待删除数据的ID参数,这个路径对应的资源根路由仅支持GET、HEAD、POST三种方法(分别对应列表渲染、新增数据提交逻辑),根本匹配不到需要携带ID的DELETE销毁路由,因此框架抛出方法不支持的报错。

修复方案
  • 修正删除表单的action地址,拼接上当前遍历行对应的数据ID,同时补全原来空href的编辑按钮链接,参考代码如下:
{{-- 注意:$item为循环输出列表时的单条数据变量,根据你实际代码里的循环变量名替换即可 --}}
<a href="/datasekolah/datasiswa/{{ $item->id }}/edit" class="badge bg-info">
  <span class="bi bi-pencil-square"></span>
</a>
<form action="/datasekolah/datasiswa/{{ $item->id }}" method="post" class="d-inline">
  @csrf
  @method('DELETE')
  <button class="badge bg-danger border-0" onclick="return confirm('Are you sure?')">
    <span class="bi bi-trash"></span>
  </button>
</form>
  • 不想硬编码路径的话,可以用路由助手函数生成地址,容错率更高。先执行php artisan route:list确认资源路由的命名规则,默认命名规则下删除路由的写法为action="{{ route('datasiswa.destroy', $item->id) }}"。
  • (可选优化)控制器destroy方法已经启用路由模型绑定,不需要再调用静态destroy方法传ID,直接调用绑定到的模型实例的delete方法即可,代码更简洁:
public function destroy(Datasekolah $datasekolah)
{
    $datasekolah->delete();
    return redirect('/datasekolah/datasiswa')->with('success', 'Data deleted!');
}

内容的提问来源于stack exchange,提问作者NyK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:36:25