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

Laravel使用resource路由提示DELETE方法不支持该如何解决?

Laravel 删除请求方法不支持报错排查方案
  • 第一步:校验路由注册是否正确
    执行命令php artisan route:list,查看product.destroy路由的注册信息,正常Resource路由生成的销毁接口应该是DELETE请求方法,URI规则为product/{product}。如果列表中没有对应DELETE路由,检查web.php中Resource路由是否被其他同名路由、路由组前缀或中间件规则覆盖。
  • 第二步:检查Blade指令是否正常解析
    打开浏览器开发者工具查看表单页面源代码,确认@method('DELETE')和@csrf指令已经被正常解析为两个隐藏input字段:_method值为DELETE,_token为自动生成的csrf校验值。如果没有生成对应字段,检查当前模板文件后缀是否为.blade.php,指令是否存在拼写错误。
  • 第三步:验证路由参数传递是否正确
    查看表单的action属性生成的链接是否符合规则,正常格式应为/product/{产品ID}(比如/product/1)。如果链接中没有产品ID、ID为空或者参数名错误,会导致路由匹配失败,被其他POST规则拦截触发报错。
  • 第四步:清理路由缓存
    如果你开启了路由缓存,执行php artisan route:clear清除缓存后重试,生产环境修改路由配置后必须清理缓存才会生效。
  • 第五步:检查Web服务器配置
    部分Nginx/Apache的默认配置会过滤DELETE、PUT这类非GET/POST的请求方法,确认你的服务器配置允许DELETE方法请求,没有做额外的请求重定向或方法改写。

如果以上排查都没有问题,可以在Resource路由前面单独注册销毁路由作为临时解决方案:

// 放在Resource路由之前优先匹配
Route::delete('product/{product}', [ProductController::class, 'destroy'])->name('product.destroy');
Route::resource('product', ProductController::class);

内容的提问来源于stack exchange,提问作者Md Musab Mahmud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:45:03