以magento获取产品的最后一个子类别

时间:2013-08-29 19:03:40

标签: php magento

我一直在搜索magento中产品的最后一个子类别。

实际上,我要做的是显示产品所在的最后一个子类别。例如,我有塑料和玻璃作为产品。我想显示最后一个子类别,即杯子或盘子。

|党
- |男孩
---- |蝙蝠侠
-------- |杯
----------- |塑料
----------- |玻璃
-------- |板
---- |超人

我已经编辑了list.phtml文件,我可以从数组中获取类别ID和名称,但它们都混淆了。所以没有办法弄清楚哪一个是最后一个类别。 magento中是否有默认功能?还是有人要善待我?  提前谢谢。

1 个答案:

答案 0 :(得分:0)

修改

好的,根据您的描述,您可能希望从当前类别中获取子类别。(在cups类别视图中,IE获取platesbatman )。

以下内容应该与您当前的孩子一样少。

<?php
    $_helper = Mage::helper('catalog/category');
    $children = Mage::registry( 'current_category' )->getChildrenCategories();
?>
<ul>
    <?php foreach( $children as $child ): ?>
        <li><a href="<?php echo $_helper->getCategoryUrl($child); ?>"><?php echo $child->getName() ?></a></li>
    <?php endforeach; ?>
</ul>

以前的答案

它有点迂回,但这可以从产品对象中获取父类别ID。

//If you don't have a product to start with, load by ID.
$_product = Mage::getModel( 'catalog/product' )->load($id);

//Assign Category Model
$categoryModel = Mage::getModel( 'catalog/category' );

//Get Array of Category Id's with Last as First (Reversed)
$_categories = array_reverse( $_product->getCategoryIds() );

//Get Parent Category Id
$_parentId = $categoryModel->load($_categories[0])->getParentId();

//Load Parent Category
$_category = $categoryModel->load($_parentId);

//Do something with $_category
echo $_category->getName();

当产品只分配了一个类别ID时,效果会更好。如果已为该产品分配了多个类别,则可能无法获得所需的类别。

此外,您可以稍微快一些,但如果搜索到该产品,此方法无效:

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

我没有测试上面的那行,但它应该有效。只有通过浏览类别才能达到产品。