Magento:Mage :: getModel('catalog / category')使用EAV还是Flat Data?

时间:2013-04-19 17:14:28

标签: magento

当您致电Mage::getModel('catalog/category')Mage::getModel('catalog/product')时,是从平面数据还是_entity表加载?

管理员中有一个选项可让您“使用”平面数据,我想知道这是否与::getModel()电话有关。

1 个答案:

答案 0 :(得分:4)

catalog/category模型是EAV模型。在默认的Magento配置中,其数据存储在

catalog_category_entity
catalog_category_entity_datetime
catalog_category_entity_decimal
catalog_category_entity_int
catalog_category_entity_text
catalog_category_entity_varchar

catalog/category模型在System -> Configuration -> Catalog -> Use Flat Catalog Category中也有一个“平面目录”功能。启用此功能后,catalog/category模型将从其中一个平面类别中提取数据

catalog_category_flat_store_*

无论哪种方式,您都可以使用catalog/category集合对象以您认为合适的方式查询此数据,包括addAttributeToFilter方法。

$collection = Mage::getModel('catalog/category')
    ->getCollection()
    ->addAttributeToSelect('*');

$collection->addAttributeToFilter(
    'url_path', array('like' => 'apparel%')
);

foreach($collection as $item)
{
    var_dump($item->getData());
}