magento中资源模型与模型的区别

时间:2016-07-25 04:43:21

标签: php magento difference

这两种语法有什么区别?

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

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

2 个答案:

答案 0 :(得分:1)

<强>法师:: getModel()

Mage :: getModel()每次在配置中都存在这样的对象时,都会创建一个对象的新实例。

实施例

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

$ product1和$ product2都具有相同对象的不同瞬间,并且还占用不同的内存

<强>法师:: getResourceModel()

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

实例化
Mage::getResourceModel() 

Mage::getModel()->getCollection()

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

请参阅以下链接。 http://alanstorm.com/magento_models_orm

答案 1 :(得分:1)

模型:模型是应在其中处理主要业务逻辑的对象,并且是对象的单个实例。该模型将使用资源模型与数据库对话,并在save()和load()上获取/设置数据。

资源模型:资源模型是您的主要C.R.U.D发生的位置(创建,读取,更新和删除)。资源模型不应包含业务逻辑,但是它将与适配器通信,并且基本上与数据库通信。