簡體   English   中英

如何基於類別ID Magento獲取類別名稱

[英]how to get category name based on category ID Magento

我目前正在使用以下代碼創建變量標簽,以在Magento CMS中使用,以打印出產品動態數據的各個部分:

<?php 

    $_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $this->getData('sku'));

    $_categories = Mage::getModel('catalog/category')->loadByAtribute('id', $this->getData('id')); 

    switch($this->getData('valuetype')){       
        case "retail":
            echo number_format($_product->getPrice(), 2, '.', ',');
            break;
        default:
        case "final":
            echo number_format($_product->getFinalPrice(), 2, '.', ',');
            break;
        case "diffDollar":
            $difference = $_product->getPrice() - $_product->getFinalPrice();
            echo number_format($difference, 2, '.', ',');
            break;
        case "diffPercent":
            $difference = (1 - ($_product->getFinalPrice() / $_product->getPrice())) * 100;
            echo number_format($difference, 0, '.', ',');
            break;
        case "prodName":
            echo ($_product->getName());
            break;
        case "urlPath":
            $prodName = ($_product->getName());
            $prodName = strtolower($prodName);
            $path = explode(" ", $prodName);
            $path = implode("-", $path);
            echo $path;
            break;
        case "catName":
            $catName = ($_categories->getName());
            echo $catName;
            break;
    }
?>

在CMS內部,我將使用以下內容導入$ _categories的數據:

{{block type="catalog/category" id="176" template="catalog/product/cmsprice.phtml" valuetype="catName"}}

對於$ _product,我將使用:

{{block type="catalog/products" sku="1000145" template="catalog/product/cmsprice.phtml" valuetype="retail"}}

使用$ _product可以完美地工作,但是當我嘗試使用$ _categories打印出類別名稱時,CMS上的頁面不會呈現在主頁上,但是頁面的其余部分會出現,並且不會顯示任何錯誤。

我覺得我快要拿到這個了,但是看不到我想念的東西。 任何幫助將不勝感激

開始時獲取的模型看起來有些偏離:

$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $this->getData('sku'));

$_categories = Mage::getModel('catalog/category')->loadByAtribute('id', $this->getData('id'));

看起來您正在嘗試使用產品的ID加載類別模型? 您需要一個類別ID,才能加載類別實例。

另外,不確定是否擔心此事,但是您如何應對多個類別的產品呢?

如果您已經有了要查找其所在的所有類別名稱的產品實例,則可以使用以下方法:

$categories = $_product->getCategoryCollection()
                       ->addAttributeToSelect('name')
                       ->addAttributeToFilter('is_active', array('eq' => 1));
$value = array();
foreach($categories as $category) {
    $value[] = $category->getName();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM