magento中资源模型和模型之间的区别

difference between resource model and model in magento

这两种语法有什么区别?

1) Mage::getModel('catalog/product')->load('1');

2) Mage::getResourceModel('catalog/product')

Mage::getModel()

Mage::getModel() 每次都会创建一个 object 的新实例,即使这样的 object 存在于配置中。

例子

$product1 = Mage::getModel('catalog/product');
$product2 = Mage::getModel('catalog/product');

$product1 和 $product2 都具有相同 object 的不同时刻并且占用不同的内存

Mage::getResourceModel()

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

实例化
Mage::getResourceModel() 

Mage::getModel()->getCollection()

使用哪个功能并不重要;后者只是调用第一个。 Magento 团队只是选择将 collections 作为资源的一部分,可能是因为 collections 需要大量查询数据库。通常,除了 collections.

之外,您不必为其他任何事情调用 Mage::getResourceModel()

见下文link。 http://alanstorm.com/magento_models_orm