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

Laravel项目使用DB方法查询数据时出现DataTables Ajax报错如何解决

问题解决办法
  • 首先确认控制器顶部是否引入了DB门面
    你需要在控制器的头部加上这行代码,否则直接调用DB类会抛出未定义类的错误:
    use Illuminate\Support\Facades\DB;
    
  • 修正前端JS保留字冲突问题
    你代码里按钮的点击事件调用了delete()函数,delete是JavaScript原生保留字,不能作为自定义函数名,会导致前端执行异常触发Ajax错误,需要修改为自定义函数名,比如:
    // 把原来的delete改成自定义名称比如deleteFavourite
    $btn2 = '<button type="button"   onclick="deleteFavourite(' . $row->id . ')"
    class="btn btn-danger waves-effect waves-light"style="margin-right:10px"   data-toggle="modal" data-target="#">
    <i class="fa fa-trash"></i>
    </button>';
    
    同时记得把你前端对应的js函数名也同步改成deleteFavourite。
  • 检查数据库查询逻辑正确性
    确认你的数据库中存在action_status表,且表中存在type、name、image_path、status、id这些你代码中用到的字段,字段名大小写也需要和数据库保持一致。
  • 排查接口实际返回内容
    打开浏览器开发者工具(按F12),切换到「网络」标签,筛选XHR请求,刷新页面触发DataTables加载,找到对应请求的响应内容,就能直接看到具体的报错信息(比如类未找到、表不存在、权限不足等)。
  • 路由权限校验
    确认你这个控制器对应的路由没有加多余的权限校验中间件,比如未登录状态下请求接口会返回重定向的HTML内容,DataTables无法解析JSON格式就会报错。
  • 可选:增加异常捕获定位问题
    你可以把查询部分用try catch包裹,手动捕获错误输出:
    try {
        $data = DB::table('action_status')
        ->where('type', 'Favourite')
        ->get(); 
    } catch (\Exception $e) {
        // 可以直接返回错误信息方便排查
        return response()->json(['error' => $e->getMessage()], 500);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:15:05