Domanda

Currently encountered a problem with catalog/category_collection.

When I'm trying to get category id by it's name it returns wrong category ID.

Anyone else had this problem and know a fix? I tried reindexing data, clearing cache nothing helps.

$category = Mage::getResourceModel('catalog/category_collection')->addFieldToFilter('name', $name);
$cat = $category->getData();
$id = $cat[0][entity_id];

Anyone maybe know an alternative to this code?

È stato utile?

Soluzione

The main problem here is that two categories can have the same name and your code does not take that into consideration.

Here's how I would attack this problem:

$collection = Mage::getResourceModel('catalog/category_collection')
    ->addAttributeToSelect('entity_id')
    ->addAttributeToFilter('name', $name);

$ids = $collection->getColumnValues('entity_id');

Thus, your $ids array will contain all the category id with the name you specified.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top