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

Laravel路由传参调用控制器方法提示不存在如何解决

错误原因
  1. 路由参数位置书写错误:你将路由参数{id}写在了控制器方法名的参数位,Laravel会将deleteData/{id}整体当作控制器方法名去查找,自然不存在对应方法,触发报错。
  2. 同路径同请求方式路由冲突:你在/atribut/tabHome路径下定义了2个GET类型的路由,Laravel路由匹配遵循从上到下的优先级,排在下方的删除路由永远不会被命中。
修复步骤

1. 修正路由定义

将路由组内的删除路由替换为以下代码:

// 路径新增delete段区分其他路由,参数放在路由路径位,控制器方法名只写方法名
Route::get('delete/{id}', [AtributDashboardController::class, 'deleteData'])->name('deleteData');

2. (可选)优化删除请求安全性

当前用GET请求做删除操作容易被爬虫、预加载功能误触发,建议改为DELETE请求,修改如下:

  • 路由修改为:
Route::delete('delete/{id}', [AtributDashboardController::class, 'deleteData'])->name('deleteData');
  • 前端Blade模板修改为表单提交:
<form action="{{route('frontend.atribut.tabHome.deleteData', $data->id)}}" method="POST" onsubmit="return confirm('确定要删除该数据吗?')">
    @csrf
    @method('DELETE')
    <button type="submit" class="btn btn-sm btn-danger">Delete</button>
</form>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:00:00