【问题标题】:How to retrieve a Doctrine record with all relational records?如何检索包含所有关系记录的 Doctrine 记录?
【发布时间】:2010-07-31 10:35:25
【问题描述】:

我想知道是否有一种方法可以获取包含所有关系数据的记录,例如“Deep-Fetch”

因此,如果一个模型 Child 与另一个模型 Parent 相关, 我们可以获取 Child 然后通过单个查询访问 Child->Parent->name 吗?

如今,只要访问关系,Doctrine 就会触发查询。这是否太昂贵了?需要优化吗?

谢谢

【问题讨论】:

    标签: doctrine orm foreign-key-relationship record


    【解决方案1】:

    当您从关系中选择字段时,Doctrine 会自动水合相关对象:

    Doctrine_Query::create()
      ->select('a.*, c.*)
      ->from('Article a')
      ->innerJoin('Category c');
    

    在本例中,Article 和 Category 对象都被水合了(没有进行额外的查询)。

    【讨论】:

    • 感谢库巴。这意味着我必须编写自定义查询,并且 fetch() 魔术方法没有重载!
    • 你的意思是 find* 方法?无论如何不建议使用它们(性能方面)。
    猜你喜欢
    • 2016-02-19
    • 2021-06-04
    • 2023-03-24
    • 2019-06-27
    • 1970-01-01
    • 2014-03-11
    • 2015-04-16
    • 2018-10-02
    • 1970-01-01
    相关资源
    最近更新 更多