0

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

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

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

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

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

4

2 回答 2

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();

注意:这些代码示例中的任何一个都特别有效,但是在不确切知道您要做什么的情况下,我无法提出更有效的解决方案。

于 2013-11-15T00:47:00.047 回答
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();
} 
于 2013-11-15T10:18:06.133 回答