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

Laravel Eloquent嵌套关联如何同时加载A.B下的C和D两个关联

你用的是Eloquent ORM的预加载功能,要实现同时加载B下的C和D两个关联,有两种常用写法:

写法1:直接传入多个关联路径(更简洁)

直接把两个要加载的完整嵌套路径都传到with方法的数组参数里即可,ORM会自动合并上层关联的查询,不会重复发起请求:

Tickets->with(['A.B.C', 'A.B.D'])->get();

写法2:嵌套闭包指定关联

如果后续还要对B层级的查询做额外条件限制,可以用闭包写法指定B下面要加载的多个关联:

Tickets->with(['A.B' => function ($query) {
    // 此处可以额外加B层级的查询条件,比如 $query->where('status', 1);
    $query->with(['C', 'D']);
}])->get();

两种写法最终返回的结构都是你需要的{A: {AB_Relationship: {BC_Relationship:{}, BD_Relationship:{}}}}格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:06:03