繁体   English   中英

Laravel Eloquent Relationship: How to get parent of parent information from child using Laravel eloquent model relationship?

[英]Laravel Eloquent Relationship: How to get parent of parent information from child using Laravel eloquent model relationship?

我在 Laravel Controller 中获取查询结果时遇到问题。 让我给你描述一下。。

我在 Laravel 项目 ModelA、ModelB、ModelC 中有三个模型。

表格如下所示:

  1. A型表:
援助 姓名 信息
1 名称1 信息1
2 名称2 信息2
  1. 模型 B 表:
出价 col1 援助
1 值1 1
2 价值2 1
  1. C型表:
c_id col1 出价
1 val_1 1
2 val_2 1

关系: ModelC 到 ModelB -> 多对一
ModelB 到 ModelA -> 多对一

我想返回带有相关 ModelA 和 ModelB 数据的 ModelC 信息,这意味着,我想获得如下数据:

data = [ 
    {
        c_id: 1,
        col1: val_1,
        b_id: 1,
        bdata: {
           b_id: 1,
           col1: value1,
           a_id: 1,
           adata: {
             a_id: 1,
             name: name1,
             info: info1,
           } 
        }
     },
     {
        c_id: 2,
        col1: val_2,
        b_id: 1,
        bdata: {
           b_id: 1,
           col1: value1,
           a_id: 1,
           adata: {
             a_id: 1,
             name: name1,
             info: info1,
           } 
        }
      }
    ]

如何定义modelA、modelC和ModelB中的关系?
以及如何在modelC Controller 中编写查询来获取这样的数据?

先感谢您...

问题解决了

我的解决方案:

我在 ModelC Controller 中的代码:

$data = ModelC::with('modelB')->get();

ModelB中的关系function:

public function modelA(){
    return $this->belongsTo(ModelA::class);
}

ModelC中的关系function:

public function modelB(){
    return $this->belongsTo(ModelB::class)->with('modelA');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM