douluhaikao93943 2012-03-21 13:53
浏览 36
已采纳

magento - 检索给定类别ID的所有子类别

As said in the title, i'm trying to do this stuff through my custom function:

public function retrieveAllChilds($id = null, $childs = null){

        $childIdsArray = is_null($childs) ? array() : $childs;
        $category = is_null($id) ? $this->getCurrentCategory() : $this->getCategoryFromId($id);
        if (count($this->getChildrenCategories($id)) > 0) {
            $c = count($this->getChildrenCategories($id));
            $tmp_array = array();
            foreach ($this->getChildrenCategories($id) as $category) {
                array_push($tmp_array, $category->getId());             
            }
            $childIdsArray = array_merge($childIdsArray, $tmp_array);
            foreach ($this->getChildrenCategories($id) as $category){
                $this->retrieveAllChilds($category->getId(), $childIdsArray);
            }
        }
        else{
            return array_unique($childIdsArray);
        }

        return array_unique($childIdsArray);
}

but seems that there's something wrong in the stop or in the exit condition. the function retrieve correctly first 16 elements. anybody could help me?

  • 写回答

1条回答 默认 最新

  • dtrhd2850 2012-03-21 14:35
    关注

    I think the class Mage_Catalog_Model_Category already includes the function you are searching. It is called getChildren:

    public function retrieveAllChilds($id = null, $childs = null) {
        $category = Mage::getModel('catalog/category')->load($id);
        return $category->getChildren();
    }
    

    The function getChildren returns children IDs comma-separated, getChildrenCategories returns an array of Mage_Catalog_Model_Category instances.

    If you want to get the children categories recursively, you can use:

    public function retrieveAllChilds($id = null, $childs = null) {
        $category = Mage::getModel('catalog/category')->load($id);
        return $category->getResource()->getChildren($category, true);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解
  • ¥15 有偿请教计算电磁学的问题涉及到空间中时域UTD和FDTD算法结合的
  • ¥15 three.js添加后处理以后模型锯齿化严重