【问题标题】:Magento - When to use Mage::getResourceModelMagento - 何时使用 Mage::getResourceModel
【发布时间】:2023-03-22 22:09:01
【问题描述】:

我目前正在学习 Magento,尤其是模型和 ORM 的工作原理。

据我所知,有模型(它们是实际的实体)、资源模型(直接与数据库适配器链接)和集合(它们是保存模型集合的容器)。

那么,为什么会有大量代码和示例使用Mage::getResourceModel() 而不仅仅是Mage::getModel() - 特别是在获取集合时,即Mage::getResourceModel('catalog/product_collection')

我能看到的唯一原因是Mage::getModel() 在某些时候必须通过资源模型,因此直接进入资源模型可能更有效。但是,这不是不好的做法吗?

【问题讨论】:

    标签: magento


    【解决方案1】:

    据我所知,Magento 中的所有集合都是资源模型。它们由Mage::getResourceModel()Mage::getModel()->getCollection() 实例化。您使用哪个功能并不重要。后一个简单地调用第一个。 Magento 团队只是选择将集合作为资源的一部分,可能是因为集合需要大量查询数据库。通常,您无需致电 Mage::getResourceModel() 获取收藏以外的任何内容。

    【讨论】:

      【解决方案2】:

      Mage::getResourceModel()

      据我所知,Magento 中的所有集合都是资源模型。它们由

      实例化

      法师::getResourceModel()

      Mage::getModel()->getCollection()

      你使用哪个函数并不重要;后一个简单地调用第一个。 Magento 团队只是选择将集合作为资源的一部分,可能是因为集合需要大量查询数据库。通常,除了集合之外,您不必调用 Mage::getResourceModel()。

      【讨论】:

        猜你喜欢
        • 2014-02-04
        • 1970-01-01
        • 1970-01-01
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        • 2013-09-17
        相关资源
        最近更新 更多