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

Laravel如何通过JSON响应返回外键关联属性用于DataTable展示

解决步骤

1. 修正关联查询代码

你当前的JOIN关联条件存在错误,agency_exps表关联agencies表应该用外键agency_id而非自身主键id,同时给关联查询出来的机构名字段设置别名agency_name,修改后代码如下:

$expense = DB::table('agency_exps')
                ->join('agencies','agency_exps.agency_id','=','agencies.id')
                ->select('agency_exps.*','agencies.name as agency_name')
                ->get();

2. 更新前端DataTable列配置

把原来的agency_id字段替换为新返回的agency_name字段即可:

{"data":"id"},
            {"data":"agency_name"},
            {"data":"amount"},
            {"data":"date"},
            {"data":"description"},

可选优化方案(Eloquent关联写法)

如果你使用Eloquent模型开发,可通过定义关联简化代码,无需手动写JOIN语句:

  1. 首先在AgencyExp模型中定义关联方法
// app/Models/AgencyExp.php
public function agency()
{
    return $this->belongsTo(Agency::class);
}
  1. 控制器中使用预加载查询数据
$expense = AgencyExp::with('agency')->get();
  1. 前端列配置直接读取关联字段
{"data": "agency.name"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:39:02