Magento - 如何在phtml中过滤类别

时间:2014-07-17 06:13:21

标签: magento collections categories php

我一直在制作maga菜单。我用phtml收集了这个集合:

<?php $_helper = Mage::helper('catalog/category') ?> <?php $_categories = $_helper->getStoreCategories() ?> <?php $currentCategory = Mage::registry('current_category') ?>

现在我必须添加过滤器以显示特定类别。就像我想要显示的数组(1,2,3,4)类别一样。那么如何将过滤器应用于此助手。

任何人都有任何建议请回答。

感谢。

2 个答案:

答案 0 :(得分:1)

使用此代码

<?php $catids[]=array(1,2,3,4);

 foreach($catids as $id):

                        $_category = Mage::getModel('catalog/category')->load($id);

                     if($_category->getIsActive()):
                            echo $_category->getName();
                     endif;
endforeach;

?>

如果有帮助,请不要忘记链接我的答案

答案 1 :(得分:1)

第一个答案是正确的,但它没有效率,因为它消耗了不必要的数据库往返。 @Karan的代码为每个id发出一个查询数据库。想象一下,如果要过滤的类别ID的数量是50或更高。

我的例子是:

<?php

$catIds = array(1,2,3,4);

$catCollection = Mage::getModel('catalog/category')->getCollection()->addAttributeToFilter('id', $catIds)->addAttributeToFilter('is_active',1);

foreach($catCollection as $category){
  echo $category->getName()." ";
}

这会将数据库往返减少到只有一个。