Magento - 何时使用Mage :: getResourceModel

时间:2011-11-11 21:09:12

标签: magento

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

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

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

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

2 个答案:

答案 0 :(得分:6)

据我所知,Magento的所有藏品都是资源模型。它们由Mage::getResourceModel()Mage::getModel()->getCollection()实例化。你使用哪种功能并不重要;后者只是称第一个。 Magento团队只是选择将集合作为资源的一部分,可能是因为集合需要对数据库进行大量查询。通常,您不必为集合之外的任何其他内容调用Mage::getResourceModel()

答案 1 :(得分:0)

<强>法师:: getResourceModel()

据我所知,Magento的所有藏品都是资源模型。它们由

实例化

Mage :: getResourceModel()

<强>法师:: getModel() - &GT; getCollection()

使用哪种功能并不重要;后者只是称第一个。 Magento团队只是选择将集合作为资源的一部分,可能是因为集合需要对数据库进行大量查询。通常,您不必为集合之外的任何其他内容调用Mage :: getResourceModel()。