检查类别是否在magento中具有子类别

时间:2013-03-29 12:16:29

标签: php magento magento-1.7

我有类别ID。我从这段代码获得了id

<?php echo $current_catid=$this->getCategoryId(); ?> 

现在我想检查此类别是否包含子类别

如果它有孩子,它将显示子类别图像和名称和网址。

5 个答案:

答案 0 :(得分:8)

如果您有current_category id,则加载类别

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

并检查count($category->getChildren());

其他方法适用于计算儿童

count($category->getChildrenNodes()); 

$category->getChildrenCount();

通过这种方式,您可以检查类别是否包含子项。

getChildren()方法为您提供子类别ID,根据您可以获取类别图像和类别名称。

答案 1 :(得分:4)

请尝试这个,它在我的工作正常

<?php  
$parentCategoryId = 10;
$categories = Mage::getModel('catalog/category')->load($parentCategoryId)->getChildren();
$catArray = explode(',', $categories);
foreach($catArray as $child)
{
$_child = Mage::getModel( 'catalog/category' )->load( $child );
echo $_child->getName() . '<br />';
echo $_child->getUrl() . '<br />';
echo $_child->getDescription() . '<br />';
}
?>

答案 2 :(得分:1)

有点旧,但我正在寻找相同的解决方案,@ Mufaddal的解决方案并没有奏效。然后我找到了getChildrenCategories()

$_category = Mage::registry('current_category');
count($_category->getChildrenCategories());

答案 3 :(得分:1)

实际上,这取决于选项是否&#34;使用平面目录类别&#34;已启用。

因此,检查类别是否具有子类别的最佳方法是:

if (Mage::helper('catalog/category_flat')->isEnabled()) {
    $childrenCount = $category->getResource()->getChildrenAmount($category);
} else {
    $childrenCount = $category->getResource()->getChildrenCount();
}

使用$ category我想你已经,如:

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

答案 4 :(得分:0)

您还有另一种方法可以检查类别子类别是否存在..

  <?php
    $currentCategoryId = Mage::registry('current_category')->getId();
    $collection = Mage::getModel('catalog/category')->getCollection()
        ->addAttributeToFilter('is_active', 1) //only active categories
        ->addAttributeToFilter('parent_id', $currentCategoryId);
    $currentCat = Mage::registry('current_category');
    $subCategories = Mage::getModel('catalog/category')->load($currentCat->getParentId())->getChildrenCategories();

    if($collection->getSize() >= 1){//there some thing....}else{

//Get Subcategory....


foreach ($subCategories as $subCategoryId ): 

                     if($subCategoryId->getIsActive())
                    {  $products = Mage::getModel('catalog/category')->load($subCategoryId->getId())
                    ->getProductCollection()
                    ->addAttributeToSelect('entity_id')
                    ->addAttributeToFilter('status', 1)
                    ->addAttributeToFilter('visibility', 4);


                        <li <?php if($subCategoryId->getId()==$currentCategoryId){?>class="active"<?php } ?>>
                            <a href="<?php echo $subCategoryId->getURL(); ?>">
                                <?php //echo $subCategoryId->getName()." (".$products->count().")"; ?>
                                <?php echo $subCategoryId->getName(); ?>
                            </a>
                        </li>
                      } endforeach;}?>

如果它的帮助完全让我知道......

由于 拉维