2013-09-03 4 views
1

У меня была основная категория (родительская категория), id = 5 & 37. Я хочу собрать ее подкатегории. Как я могу это сделать?Как получить подкатегории двух родительских категорий

$catid = array(5,37); 


$_category = Mage::getModel('catalog/category')->load(5); 
$_subcategories1 = $_category->getChildrenCategories(); 
$_category = Mage::getModel('catalog/category')->load(37); 
$_subcategories2 = $_category->getChildrenCategories(); 

я хочу коллекции, которые имеют детей категории из обеих категорий идентификатору (5,37)

ответ

2

Вы можете получить, что от одного выбора:

$subcategories = Mage::getModel('catalog/category') 
    ->setStoreId(Mage::app()->getStore()->getId()) 
    ->getCollection() 
    ->addAttributeToSelect('*') 
    ->addAttributeToFilter('parent_id', array(5, 37)) 
    ->setOrder('parent_id', 'ASC');//if you want them somehow grouped by parent_id 
foreach ($subcategories as $category){ 
    //do something with $category 
} 
+0

Thanx @Marius его работы. – shivam

0

здесь я даю вам один пример, чтобы объединить две коллекции категории и одной коллекции

$storeId = Mage::app()->getStore()->getId(); 
    $categoryOneId = 5; 
    $categoryTwoId = 37; 

    $categoryOne = Mage::getModel('catalog/category')->load($categoryOneId); 
    $categoryTwo = Mage::getModel('catalog/category')->load($categoryTwoId); 

    $collectionOne = Mage::getModel('catalog/product')->getCollection() 
     ->setStoreId($storeId) 
     ->addCategoryFilter($categoryOne); 

    $collectionTwo = Mage::getModel('catalog/product')->getCollection() 
     ->setStoreId($storeId) 
     ->addCategoryFilter($categoryTwo); 

    $merged_ids = array_merge($collectionOne->getAllIds(), $collectionTwo->getAllIds()); 

    $mergedCollection = Mage::getModel('catalog/product')->getCollection() 
     ->addFieldToFilter('entity_id', $merged_ids); 

надеюсь, что это обязательно поможет.

Смежные вопросы