小编Rus*_*man的帖子

在laravel中的嵌套预先加载中加载特定关系

我有以下相关表格:

tableA 
  - id 
  - value

tableB 
  - id 
  - tableA_id
  - value

tableC 
  - id 
  - tableB_id
  - value


tableD 
  - id 
  - tableC_id
  - value
Run Code Online (Sandbox Code Playgroud)

我通常使用嵌套的eager加载来从tableD获取tableaA的对象,例如:

$table_d = TableD::with('TableC.TableB.TableA')->find($id);
Run Code Online (Sandbox Code Playgroud)

我得到一个像这样的对象:

{
    "id": 1,
    "value": "value",
    "tableC_id": 1,
    "tablec": {
                "id": 1,
                "value": "value",
                "tableB_id": 1,
                "tableb": {
                            "id": 1,
                            "value": "value",
                            "tableA_id": 1,
                            "tablea": {
                                        "id": 1,
                                        "value": "value"
                            }
                }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的只是获取表D的对象,其对象来自表A,而最终对象中没有表C和表B,如下所示:

{
    "id": 1,
    "value": "value",
    "tablea": {
                "id": 1,
                "value": "value"
                }
    }
} …
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-eloquent laravel-5.5

5
推荐指数
1
解决办法
301
查看次数

标签 统计

eloquent ×1

laravel ×1

laravel-5.5 ×1

laravel-eloquent ×1

php ×1