Magento - 从Mage_Catalog_Model_Resource_Product_Collection对象访问值

时间:2011-12-06 11:36:07

标签: php arrays magento object

我是magento和php的新手,我正在尝试从对象中检索值。

$_productCollection=$this->getLoadedProductCollection();

当我做print_r()时,我会得到类似下面的内容

Mage_Catalog_Model_Resource_Product_Collection Object
(
    [_flatEnabled:protected] => Array
        (
            [1] => 
        )

    [_productWebsiteTable:protected] => sn_catalog_product_website
    [_productCategoryTable:protected] => sn_catalog_category_product
    [_addUrlRewrite:protected] => 1
    [_urlRewriteCategory:protected] => 3
    [_addMinimalPrice:protected] => 
    [_addFinalPrice:protected] => 
    [_allIdsCache:protected] => 
    [_addTaxPercents:protected] => 1
    [_productLimitationFilters:protected] => Array
        (
            [category_id] => 3
            [category_is_anchor] => 1
            [store_id] => 1
            [use_price_index] => 1
            [customer_group_id] => 0
            [website_id] => 1
            [visibility] => Array
                (
                    [0] => 2
                    [1] => 4
                )

        )
)

我需要在此获取类别ID。 有人可以帮助我吗

2 个答案:

答案 0 :(得分:2)

尝试从产品列表中获取类别是很长的路要走,因为产品列表是类别的一部分。我假设您在类别页面上执行此操作(否则您正在处理多个类别,例如在搜索页面上),在这种情况下,您可以更直接地检索它;

$category = Mage::registry('current_category');
$categoryId = $category->getId();

// to find out what other info is stored, temporarily use this
print_r($category->debug());

答案 1 :(得分:1)

你正在处理包含多个集合项(对象)的大量集合,所以要从中获取数据,你需要迭代这个第一个

$_productCollection=$this->getLoadedProductCollection();

foreach($_productCollection as $product){

//display data that object contains
//print_r($product->getData());

//display category id's that product is associated with
//print_r($product->getCategoryIds());

}