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

Laravel使用Eloquent多关联预加载查询时files和user关联返回null如何修复

问题修复方案

问题根源

Laravel Eloquent 执行with预加载关联时,需要主表(此处为Course表)提供关联对应的外键值,才能匹配到关联表的对应记录。你的查询中select方法仅选择了id、courseDisplayName、aboutCourse三个字段,遗漏了files关联需要的外键fileId,以及user关联需要的外键userId,导致关联查询无法匹配到数据,最终返回null。

修复代码

只需要在select参数中补充两个关联必需的外键字段即可:

$course=Course::with(['files:id,FileName,FilePath','user:id,name'])
->select('id','courseDisplayName','aboutCourse', 'fileId', 'userId') // 新增关联所需的外键字段
->where('userId',$request->tutorId)
->get();

补充注意事项

  • 预加载关联并指定关联表字段时,必须包含关联表的主键(你当前写法中关联表已带上id字段,符合要求)
  • 主表查询必须包含对应关联的外键字段,否则所有belongsTo类型的关联都会返回null

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:24:04