我目前正在学习Magento,特别是模型和ORM是如何工作的。
据我所知,有模型(它们是实际的实体)、资源模型(直接与数据库适配器链接)和集合(它们是保存模型集合的容器)。
那么,为什么会有一大堆代码和示例使用Mage::getResourceModel()而不只是Mage::getModel() --尤其是在获取集合时,例如Mage::getResourceModel('catalog/product_collection')。
我能看到的唯一原因是,Mage::getModel()在某些时候必须通过资源模型,因此直接转到资源模型可能更有效。然而,这不是很糟糕的做法吗?
发布于 2011-11-12 22:05:46
据我所知,Magento中的所有集合都是资源模型。它们由Mage::getResourceModel()或Mage::getModel()->getCollection()实例化。使用哪个函数并不重要;后一个函数只是调用第一个函数。Magento团队简单地选择将集合作为资源的一部分,可能是因为集合需要大量查询数据库。通常,除了集合之外,您不需要调用Mage::getResourceModel()。
发布于 2016-07-07 14:54:38
Mage::getResourceModel()
据我所知,Magento中的所有集合都是资源模型。它们实例化为
Mage::getResourceModel()
或
Mage::getModel()->getCollection()
使用哪个函数并不重要;后一个函数只是调用第一个函数。Magento团队简单地选择将集合作为资源的一部分,可能是因为集合需要大量查询数据库。通常,除了集合之外,您不必调用Mage::getResourceModel()。
https://stackoverflow.com/questions/8100008
复制相似问题