Magento如何显示/列出目录类别平台中的所有类别

时间:2013-03-28 02:50:01

标签: magento magento-1.7

我启用了“使用平面目录类别”& “使用平面目录产品”至“是”以获得更好的性能。但启用此选项后,我之前获得所有子类别列表的cms页面之一已不再有效。 在启用平面数据之前使用我获取子类别的代码是:

$_category = Mage::getModel('catalog/category')->load(CATEGORY-ID);    
$_categories = $_category->getCollection()->addAttributeToSelect(array('url_key','name','image','all_children','is_anchor','description'))
                ->addAttributeToFilter('is_active', 1)
                ->addIdFilter($_category->getChildren())
                ->setOrder('position', 'ASC')
                ->joinUrlRewrite();

注意:我已经检查过,我的两个平面数据表都已成功填充。如果我将“使用平面目录类别”选项更改为“否”,此代码仍然有效。 现在,应该是什么代码来获取类别列表及其子类别,因为它可以从“catalog_category_flat_store_ *”表中提取数据?

2 个答案:

答案 0 :(得分:4)

我在这里使用了这段代码

    $_category = Mage::getModel('catalog/category')->load(CATEGORY-ID);    
    $_categories = $_category
                    ->getCollection()
                    ->addAttributeToSelect(array('name', 'image', 'description'))
                    ->addIdFilter($_category->getChildren());

    foreach ($_categories as $_category):
       echo $_category->getName();
    endforeach;

答案 1 :(得分:1)

只需删除过滤器并检查。

- > addAttributeToFilter('is_active',1)    - > addIdFilter($ _类别 - >的getChildren())

也进行getselect并检查生成的sql查询。

以上两个将提供进一步的提示。请在此处进行进一步评论。