Magento - доступ к значениям из объекта Mage_Catalog_Model_Resource_Product_Collection - PullRequest
0 голосов
/ 06 декабря 2011

Я новичок в 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 ]

2 голосов
/ 06 декабря 2011

Попытка получить категорию из списка продуктов - это долгий путь, поскольку список продуктов является частью категории. Я предполагаю, что вы делаете это на страницах категорий (в противном случае вы имеете дело с более чем одной категорией, например на странице поиска), и в этом случае вы можете получить ее более напрямую;

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

// to find out what other info is stored, temporarily use this
print_r($category->debug());
1 голос
/ 06 декабря 2011

вы имеете дело с коллекцией, которая представляет собой массив, содержащий несколько элементов коллекции (объектов), поэтому для получения данных оттуда вам нужно выполнить итерацию по этому первому

$_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());

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...