如何使用Magento中的集合获取产品类别信息

时间:2010-03-16 13:17:12

标签: collections magento

我正在尝试从Magento商店输出所有产品 - 以下代码有效,但我还需要获取类别ID&父类别名称也是。谁能建议我怎么做呢?

$product = Mage::getModel('catalog/product'); 
$productCollection = $product->getCollection()
->addAttributeToSelect('*');


foreach ( $productCollection as $_product ) {
    echo $_product->getName().'<br/>';        
}

2 个答案:

答案 0 :(得分:8)

在某些情况下,$ _product-&gt; getCategory()可以返回空并导致错误。

更好的解决方案是按ID获取类别:

$categoryIds = $_product->getCategoryIds();

foreach($categoryIds as $categoryId) {
    $category = Mage::getModel('catalog/category')->load($categoryId);
    echo $category->getName();
    echo $category->getUrlPath();
 }

答案 1 :(得分:4)

由于产品可以分配到多个类别,我认为除非您为每个类别加载一个集合,否则您的概念可能会有些偏差。如果给定产品有多个类别,您期望看到什么?

无论如何,在类别页面中,您可以使用以下内容:

$currentCat = $_product->getCategory();

获取此产品所属的所有类别:

$categories = $_product->getCategoryCollection();
foreach($categories as $_category) {
    // do something
}

希望有所帮助。谢谢,