【问题标题】:Magento categories listing using getCollection & addLevelFilter but exclude Default Root Category使用 getCollection 和 addLevelFilter 列出 Magento 类别,但不包括默认根类别
【发布时间】:2012-02-16 01:28:10
【问题描述】:

我正在使用以下代码来获取集合并使用 addLevelFilter(2) 在级别上进行过滤。这完美地输出了我在第 2 级的所有类别,除了它还通过我列表中的默认根类别。我想从视图中排除它,但查看了所有可用的方法,我看不到任何可以帮助我删除/排除某些级别或类别的东西。我真的想要一个完整的证明解决方案,所以如果我选择说 3 级,它只会显示 3 级而不是 1、2、3 级。有没有人建议只提取某个级别/类别!!??

<?php
$categories = Mage::getModel('catalog/category')
                    ->getCollection()
                    ->addAttributeToSelect('*')
                    ->addIsActiveFilter()
                    ->addLevelFilter(2)
                    ->addOrderField('name');
    foreach($categories as $category):
?>
    <div class="home-cats">
        <div class="product-image">
           <a href="<?php echo $category->getURL() ?>" title="<?php echo $this->htmlEscape($category->getName()) ?>">
             <img src="<?php echo $category->getImageUrl() ?>" width="88" alt="<?php echo $this->htmlEscape($category->getName()) ?>" />
           </a>
        </div>
    </div>
<?php endforeach; ?>

任何建议/反馈将不胜感激。干杯,萨胡斯

【问题讨论】:

    标签: magento magento-1.5


    【解决方案1】:

    你可以试试

    ->addAttributeToFilter('level',2)
    

    这可能对你有用

    【讨论】:

    • 感谢@naresh-tank 成功了。您是否知道任何可能有助于仅获取当前子类别的过滤器。我在主页上使用上面的代码来获取根目录的所有主要子类别。但是假设我在子类别中深入了 3-4 级,并且在任何特定类别页面上我只想检索它的孩子!?知道如何实现这一目标!?
    • 如果你想满足所有子类的特定需求,那么你可以使用 $currenCat->getAllChildren().other wiseuse $currenCat->getChild()
    • 感谢您的回复。我会在 ->getCollection() 之前还是之后使用上面的 $currentCat->getAllChildren()。实际上考虑一下我会不会像这样在foreach中使用它 foreach($categories->getAllChildren() as $category)
    • getAllChildren() 方法将所有 id 以逗号分隔的 id 形式提供给您,因此您必须先进行 expload 并使用数组,然后才能使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多