วิธีการจัดเรียงหมวดหมู่ตามที่ปรากฏในผู้ดูแลระบบ


15

นี่คือรหัส:

$category = Mage::getModel('catalog/category')->load(3);
$subCats = Mage::getModel('catalog/category')->load($category->getId())->getChildren();
$subCatIds = explode(',',$subCats);
$currentUrl = Mage::helper('core/url')->getCurrentUrl();

กรุณาให้คำแนะนำขอบคุณ!

คำตอบ:


24
$category = Mage::getModel('catalog/category')->load(3);
$children = Mage::getModel('catalog/category')->getCollection()->setStoreId(Mage::app()->getStore()->getId());
$children->addAttributeToSelect('*')
        ->addAttributeToFilter('parent_id', $category->getId())
        ->addAttributeToFilter('is_active', 1)//get only active categories if you want
        ->addAttributeToSort('position');//sort by position

foreach ($children as $child){
    //do something with $child
}

ขอบคุณสำหรับตัวอย่าง แต่ฉันต้องการติดกับรหัสของฉันเพราะมันถูกนำไปใช้ในแม่แบบแล้ว วิธีที่เราสามารถเพิ่มแอตทริบิวต์แบบนี้เข้ามา$subCats = Mage::getModel('catalog/category')->load($category->getId())->getChildren();? ขอบคุณ!
Aamir Siddique

3
คุณสามารถแทนที่getChildren()ด้วยgetChildrenCategories()และคุณควรจัดเรียงมัน แต่คุณยังคงได้รับวัตถุประเภทไม่ใช่รหัส หากคุณต้องการรหัสคุณสามารถวนผ่านหมวดหมู่ของเด็กและเชื่อมต่อรหัสของพวกเขา ฉันไม่เข้าใจสิ่งที่คุณพยายามจะทำ
Marius

^^ ฉันหวังว่ามันเป็นเอกสารที่ชัดเจนมากขึ้นบางที่getChildren()ผลตอบแทน ID ไม่ได้เรียงลำดับและgetChildrenCategories()ผลตอบแทนเรียงวัตถุ การล้างข้อมูลทุกอย่างสำหรับฉันนี้วีโอไอพีเองก็ไม่ได้ทำให้ชัดเจน
วาฟเฟิล

ค่อนข้างแน่ใจว่า getChildrenCategories ไม่ทำงานกับ Flat Categories
Samyer

7

คุณสามารถลองเปลี่ยนรหัสของคุณเพื่อใช้ฟังก์ชั่น getChilderCategories () และ toArray ได้หลากหลาย

$category = Mage::getModel('catalog/category')->load(3);
$subCats = $category->getChildrenCategories();
$subCatIds = $subCats->toArray(array('entity_id'));

ฟังก์ชั่น getChildrenCategories จะให้คอลเลกชันคุณในลำดับเดียวกับส่วนผู้ดูแลระบบแล้วโทรไปที่อาเรย์และขอเฉพาะแอททริบิวต์ entit_id คุณจะมีอาเรย์ของหมวดหมู่ต่างๆ

array(3) {
    [10]=> array(1) {
         ["entity_id"]=> string(2) "10"
    }
    [13]=> array(1) {
        ["entity_id"]=> string(2) "13"
    }
    [18]=> array(1) {
        ["entity_id"]=> string(2) "18"
    }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.