ter*_*d25 4 php magento magento-1.4
我有一个类别,有2个子类别.在每个类别中,有5个子类别.
有没有办法获得所有这10个子子类别的列表?
谢谢
编辑:
像这样的东西:
Main Category
Sub_Cat_1
Cat_1
Cat_2
Cat_3
Sub_Cat_2
Cat_4
Cat_5
Cat_6
Wanting output like:
Cat_1
Cat_2
Cat_3
Cat_4
Cat_5
Cat_6
Run Code Online (Sandbox Code Playgroud)
谢谢
Fab*_*ler 15
到目前为止,所有答案都在一个循环中加载子类别,这通常是不好的做法,并导致执行许多SQL查询,其中一个就足够了.
让我们$parentCategory成为您的主要类别,然后此集合将加载所有子类别,下面两个级别:
$subcategoryCollection = Mage::getModel('catalog/category')
->getCollection()
->addFieldToFilter('level', $parentCategory->getLevel() + 2)
->addFieldToFilter('path', ['like' => $parentCategory->getData('path') . '/%']);
Run Code Online (Sandbox Code Playgroud)
该path字段包含前缀为表单中所有祖先ID的类别ID 1/2/3.数据库方面,它是一个catalog_category_entity具有索引的列,因此这样的比较没有性能问题.
弄清楚了:
$cat = Mage::getModel('catalog/category')->load(24);
$subcats = $cat->getChildren();
foreach(explode(',',$subcats) as $subCatid)
{
$_category = Mage::getModel('catalog/category')->load($subCatid);
if($_category->getIsActive()) {
$sub_cat = Mage::getModel('catalog/category')->load($_category->getId());
$sub_subcats = $sub_cat->getChildren();
foreach(explode(',',$sub_subcats) as $sub_subCatid)
{
$_sub_category = Mage::getModel('catalog/category')->load($sub_subCatid);
if($_sub_category->getIsActive()) {
echo '<li class="sub_cat"><a href="'.$_sub_category->getURL().'" title="View the products for the "'.$_sub_category->getName().'" category">'.$_sub_category->getName().'</a></li>';
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的期待!