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

Laravel项目中如何将数据库数据以JSON返回并在Ajax中处理

解决Laravel控制器返回JSON数据给Ajax的问题

首先,你的代码里有几个关键问题需要修正,下面一步步帮你解决:

1. 修正控制器show方法,返回标准JSON响应

你的控制器代码存在两处问题:

  • DB::table('radcheck')get() 缺少箭头操作符 ->,属于语法错误
  • 直接返回查询集合的话,Laravel不会自动处理为符合Ajax需求的JSON响应,需要用response()->json()包装返回结果

另外,show($id)方法通常用于获取单条指定记录,你原代码查询了所有radcheck数据,建议根据传入的$id筛选对应记录,这样前端拿到的才是目标数据:

public function show($id) {
    // 根据id查询单条记录,用first()获取单个对象(get()会返回多条记录的集合)
    $result = DB::table('radcheck')->where('id', $id)->first();
    
    // 将数据包装为JSON格式响应返回
    return response()->json($result);
}

如果你确实需要返回多条关联数据(比如某用户的所有相关记录),可以保留get(),但前端需要处理数组形式的JSON:

public function show($id) {
    $result = DB::table('radcheck')->where('user_id', $id)->get();
    return response()->json($result);
}

2. 调整前端Ajax代码,正确处理JSON响应

你的Ajax代码里,success和error函数的处理逻辑有问题:

  • success中直接取hr_request['username'],如果返回单条记录可以直接访问属性,但如果是数组需要循环遍历
  • error函数里的hr_request是错误对象,不是业务数据,不能直接取username

修正后的Ajax代码:

$('.edit-user').on('click', function() {
    var id = $(this).data('id');
    $.ajax({
        type: 'GET',
        url: '/users/' + id,
        // GET请求无需传递_token,Laravel的CSRF验证默认只针对POST/PUT/DELETE等请求
        success: function(response) {
            // 处理单条记录的情况
            if (response) {
                alert('获取到的用户名:' + response.username);
                // 也可以把数据填充到编辑表单,比如:
                // $('#edit-username').val(response.username);
            }

            // 如果返回的是多条记录(数组),需要循环遍历
            // response.forEach(function(item) {
            //     console.log('用户名:' + item.username);
            // });
        },
        error: function(xhr) {
            // 错误处理,打印详细错误信息方便调试
            alert('请求失败:' + xhr.responseText);
            console.log('错误详情:', xhr);
        }
    });
});

3. 额外调试建议

如果还是无法获取数据,可以通过以下方式排查:

  • 在控制器中用dd($result)查看查询到的数据是否符合预期
  • 打开浏览器开发者工具的「Network」标签,查看Ajax请求的响应内容,确认返回的JSON格式是否正确
  • 检查路由配置,确保/users/{id}确实指向你的控制器show方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:14:58