如何解决Laravel Eloquent 关系:如何使用 Laravel eloquent 模型关系从孩子那里获取父母信息?
我在 Laravel 控制器中获取查询结果时遇到问题。
让我给你描述一下..
我在 Laravel 项目 ModelA、ModelB、ModelC 中有三个模型。
表格如下所示:
- ModelA 表格:
a_id | 姓名 | 信息 |
---|---|---|
1 | name1 | 信息1 |
2 | name2 | 信息2 |
- ModelB 表格:
b_id | col1 | a_id |
---|---|---|
1 | 值1 | 1 |
2 | value2 | 1 |
- ModelC 表格:
c_id | col1 | b_id |
---|---|---|
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,}
}
}
]
如何定义模型A、模型C和模型B中的关系?
以及如何在modelC Controller中编写查询来获取这样的数据?
谢谢,提前...
解决方法
问题已解决
我的解决方案:
我在 ModelC 控制器中的代码:
$data = ModelC::with('modelB')->get();
ModelB 中的关系函数:
public function modelA(){
return $this->belongsTo(ModelA::class);
}
ModelC 中的关系函数:
public function modelB(){
return $this->belongsTo(ModelB::class)->with('modelA');
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。