以雄辩的关系获取父母数据

Posted

技术标签:

【中文标题】以雄辩的关系获取父母数据【英文标题】:Get parents data in eloquent relation 【发布时间】:2018-06-14 09:19:37 【问题描述】:

我有这样的表:

Master_Table

    id      titile      desc
    1       one         one is one
    2       two         two is two

子表

    id      value       master_id
    1       first       1
    2       second      1
    3       third       1
    4       fourth      1

所以当我成功检索数据时,它会是这样的json:

    Master_Table 
        id:1,
        title:'one',
        desc: 'one is one',
        Child_Table: [
            id: 1, value:"first", master_id:1,
            id: 2, value:"second", master_id:1,
            id: 3, value:"third", master_id:1,
            id: 4, value:"fourth", master_id:1,
        ]
    

我是这样做的:

    $json= PDH::find(1)->products()->where('product_highlight_id', 1)->get();

但结果只有孩子

        Child_Table: [
            id: 1, value:"first", master_id:1,
            id: 2, value:"second", master_id:1,
            id: 3, value:"third", master_id:1,
            id: 4, value:"fourth", master_id:1,
        ]

我确信这在 Laravel Eloquent 中可用,但我几乎找不到它。有人可以给我指点一下吗?

提前致谢。

【问题讨论】:

【参考方案1】:

您无需再次检查product_highlight_id,因为您已经检查了master object,并且您拥有相应的child collection

$json = PDH::with('products')->where('id', 1)->first();

我假设 PDH 你的主模型。

【讨论】:

firstfind有什么区别? ***.com/questions/33027047/… 看看这里【参考方案2】:

使用with() 方法:

$pdh = PDH::with('products')->where('product_highlight_id', 1)->find(1);

那么$pdh 将包含父对象,$pdh->products 将是产品的集合。

【讨论】:

非常好!我只需要更改 where 子句。谢谢! :)

以上是关于以雄辩的关系获取父母数据的主要内容,如果未能解决你的问题,请参考以下文章

在laravel中以雄辩的关系获取错误列的数据

如何从雄辩关系中的第三个表中获取数据雄辩的多对多关系

Laravel 雄辩模型如何从关系表中获取数据

groupBy 在 laravel 中具有雄辩的关系

Laravel - 雄辩的关系 - 多对多 - 获取中间表列

Laravel 5.4雄辩的一对多关系