我一直在搜索magento中产品的最后一个子类别。
实际上,我要做的是显示产品所在的最后一个子类别。例如,我有塑料和玻璃作为产品。我想显示最后一个子类别,即杯子或盘子。
|党
- |男孩
---- |蝙蝠侠
-------- |杯
----------- |塑料
----------- |玻璃
-------- |板
---- |超人
我已经编辑了list.phtml文件,我可以从数组中获取类别ID和名称,但它们都混淆了。所以没有办法弄清楚哪一个是最后一个类别。 magento中是否有默认功能?还是有人要善待我? 提前谢谢。
答案 0 :(得分:0)
修改强>
好的,根据您的描述,您可能希望从当前类别中获取子类别。(在cups
类别视图中,IE获取plates
和batman
)。
以下内容应该与您当前的孩子一样少。
<?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() );
我没有测试上面的那行,但它应该有效。只有通过浏览类别才能达到产品。