Magento如何从产品中获取子类别的父类别

Cal*_*lua 4 tree product parent magento categories

Root Category (id: 1)
 - Apparel (id: 2)
   -- Shirts (id:4)
   -- Pants  (id:5)
 - Accessories (id: 3)
   -- Handbags (id:6)
   -- Jewelry (id:7)
Run Code Online (Sandbox Code Playgroud)

在Magento上,我们可以通过使用获得产品的类别ID $productObj->getCategoryIds()

$productObj = Mage::getModel('catalog/product')->load($product_id);
$categoryIds =  $productObj->getCategoryIds();
Run Code Online (Sandbox Code Playgroud)

这将返回产品的类别ID数组.我特别需要获得产品类别的第一级父级.例如,上面的类别树,如果产品被分类为Pants类别,我想获得第一级别的服装(在这种情况下,产品仅在Pants类别下标记但未在服装类别中标记).

问题:我可以使用什么方法来获取子类别的父类别,还是可以从产品中获取第一级别类别?

Jür*_*len 9

您可以使用该catalog/category模型及其方法getParentCategory():

foreach ($categoryIds as $iCategoryId) {
    $m = Mage::getModel('catalog/category')
        ->load($iCategoryId)
        ->getParentCategory();
    var_dump($m->debug());
}
Run Code Online (Sandbox Code Playgroud)

  • 请原谅我的小编辑.使用`debug`比`getData`更好,因为`debug`递归地将包含的对象转换为数组并隐藏它们的私有成员.它还避免了消耗所有内存的无限循环. (5认同)
  • 我有一个`Mage :: log()`宏.我想伟大的思想一样;) (3认同)
  • @clockworkgeek:没问题.我知道`debug()`你是对的.`getData()`thingy来自我的IDE`var_dump`宏.多年来无法将其更改为`debug()`^^不再.谢谢^^ (2认同)