【发布时间】:2021-05-02 06:03:57
【问题描述】:
我在 Laravel 控制器中获取查询结果时遇到问题。
让我给你描述一下..
我在 Laravel 项目中有三个模型 ModelA、ModelB、ModelC。
表格如下所示:
- A 型表:
| a_id | name | info |
|---|---|---|
| 1 | name1 | info1 |
| 2 | name2 | info2 |
- B 型表:
| b_id | col1 | a_id |
|---|---|---|
| 1 | value1 | 1 |
| 2 | value2 | 1 |
- C 型表:
| 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,
b_id: 1,
bdata: {
b_id: 1,
col1: value1,
a_id: 1,
adata: {
a_id: 1,
name: name1,
info: info1,
}
}
}
]
如何定义modelA、modelC和ModelB中的关系?
以及如何在modelC控制器中编写查询来获取这样的数据?
谢谢,提前...
【问题讨论】:
-
这是有据可查的,所以至少试一试...laravel.com/docs/8.x/eloquent-relationships 在 api 中使用请查看“with()”方法。
-
@GertB.谢谢。
-
@GertB.,我可以处理两个模型。但是这一次,它需要获取父信息的父...
-
基本一样。如果你使用 'with' 方法,你可以使用('parent_relation.parent_parent_relation')。 (使用关系offcourse的名称)
-
已经解决了。谢谢你的时间......