这两种语法有什么区别?
1)Mage::getModel('catalog/product')->load('1');
2)Mage::getResourceModel('catalog/product')
答案 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()
。
答案 1 :(得分:1)
模型:模型是应在其中处理主要业务逻辑的对象,并且是对象的单个实例。该模型将使用资源模型与数据库对话,并在save()和load()上获取/设置数据。
资源模型:资源模型是您的主要C.R.U.D发生的位置(创建,读取,更新和删除)。资源模型不应包含业务逻辑,但是它将与适配器通信,并且基本上与数据库通信。