PHP的新手,所以我为这个问题的明显简单而道歉。
我了解您可以通过以下方式获取产品类别:
//load the product
$product = Mage::getModel('catalog/product')->load($productId);
//load the categories of this product
$categoryCollection = $product->getCategoryCollection();
但是如何才能获得该类别的第一个产品?
答案 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();
}