2013-11-14 36 views
0

PHP新手,所以我对这个问题的表面简单表示歉意。如何获得产品的类别?

我明白,你可以通过做这个拿到产品的类别:

//load the product 
$product = Mage::getModel('catalog/product')->load($productId); 

//load the categories of this product 
$categoryCollection = $product->getCategoryCollection(); 

但如何做我得到的只是类别的第一个产品?

+0

定义“第一”。 –

+0

$ categoryCollection [0]? – developerwjk

回答

0

getCategoryCollectionn函数返回一个包含所有产品类别的Magento集合。类别集合中的项目是Magento类别对象,而类别具有方法(getProductsCollection),该方法返回包含类别中所有产品的集合。 Magento集合具有相当丰富的API,可用于从集合中获取特定项目,在这种情况下,我们需要getFirstItem()。为了把所有在一起:

$product = Mage::getModel('catalog/product')->load($productId); 
$categoryCollection = $product->getCategoryCollection(); 
foreach ($categoryCollection as $category) { 
    $products = $category->getProductsCollection(); 

    // Here we have the first product 
    $firstProduct = $products->getFirstItem(); 
} 

如果你想要的是在第一类为您当前的产品的第一款产品,你可以避开环路,做这个:

$product = Mage::getModel('catalog/product')->load($productId); 
$categoryCollection = $product->getCategoryCollection(); 
$category = $categoryCollection()->getFirstItem(); 
$products = $category->getProductsCollection(); 

// Here we have the first product 
$firstProduct = $products->getFirstItem(); 

注:Neigher这些代码示例是特别有效的,但是不知道你想要做什么,我不能提出更有效的解决方案。

0
$product = Mage::getModel('catalog/product')->load($productId); 

$cats = $product->getCategoryIds(); 
foreach ($cats as $category_id) { 
    $_cat = Mage::getModel('catalog/category')->load($category_id) ; 
    echo $_cat->getName(); 
} 
相关问题