list-->layer-->category-->collection
1
catalog/block/product/list.php ---->_getProductCollection()
$layer = Mage::getSingleton('catalog/layer');
$category = Mage::getModel('catalog/category')->load($this->getCategoryId());
$layer->setCurrentCategory($category);
$layer->getProductCollection();
prepareSortableFieldsByCategory
//得到layer,category,然后layer赋值,然后prepareSortableFieldsByCategory
2
mage/catalog/model/layer.php ---->getProductCollection()
$this->getCurrentCategory()->getProductCollection();
prepareProductCollection($collection);
//得到category-
3
mage/catalog/model/category.php --->getProductCollection()
$collection = Mage::getResourceModel('catalog/product_collection')
->setStoreId($this->getStoreId())
->addCategoryFilter($this);
4
Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
setStoreId()
addCategoryFilter()
5
在list.phtml中得到
<?php
$_productCollection=$this->getLoadedProductCollection();
$_helper = $this->helper('catalog/output');
?>
$_productCollection就是
Mage_Eav_Model_Entity_Collection_Abstract类型!!!
过程本质是:Mage::getResourceModel('catalog/product_collection')
->setStoreId($this->getStoreId())
->addCategoryFilter($this);
其余的过程是为这个语句准备数据,和一起其他,,譬如,prepare,prepareSortableFieldsByCategory等工作。。!!
在产品分类页面,数据的加载过程!!
最新推荐文章于 2022-05-16 10:48:26 发布