2011-11-11 50 views
5

我正在學習Magento,特別是模型和ORM的工作原理。據我所知,模型(它們是實際的實體),資源模型(它直接與數據庫適配器鏈接)和集合(它們是容納模型集合的容器)。Magento - 何時使用Mage :: getResourceModel

爲什麼接下來會出現一大堆代碼和例子,它們使用Mage::getResourceModel()而不是Mage::getModel() - 特別是當抓取一個集合,即Mage::getResourceModel('catalog/product_collection')時。

我能看到的唯一原因是Mage::getModel()必須在某個時候通過資源模型,因此直接轉到資源模型可能會更有效。但是,這不正確的做法?

回答

6

據我所知,Magento中的所有集合都是資源模型。它們由Mage::getResourceModel()Mage::getModel()->getCollection()實例化。使用哪個函數並不重要;後者簡單地稱爲第一個。 Magento團隊只是選擇將集合作爲資源的一部分,可能是因爲集合需要查詢數據庫。通常情況下,您無需致電Mage::getResourceModel()查詢集合以外的任何內容。

0

法師:: getResourceModel()

據我所知,在Magento所有的集合是資源模型。它們由

法師:: getResourceModel()

法師:: getModel()實例 - > getCollection()

它並不真正的問題,其功能你用;後者簡單地稱爲第一個。 Magento團隊只是選擇將集合作爲資源的一部分,可能是因爲集合需要查詢數據庫。通常,您不必爲集合以外的其他任何東西調用Mage :: getResourceModel()。

相關問題