2013-11-14 117 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(); 
} 
相關問題