Функция 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 эти примеры кода особенно эффективны, но, не зная точно, что вы пытаетесь сделать, я не могу предложить более эффективное решение.
Определить «первый». –
$ categoryCollection [0]? – developerwjk