2013-11-14 3 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(); 
} 
Смежные вопросы