如何获得产品类别?

时间:2013-11-14 23:45:49

标签: php magento

PHP的新手,所以我为这个问题的明显简单而道歉。

我了解您可以通过以下方式获取产品类别:

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

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

但是如何才能获得该类别的第一个产品?

2 个答案:

答案 0 :(得分: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();

注意:这些代码示例的更高效率非常高,但如果不确切知道您要做什么,我无法提出更有效的解决方案。

答案 1 :(得分: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();
}