Ich habe Code, um eine grundlegende Suche nach Kategorien durchzuführen. Es funktioniert durch Suchen des Kategorienamens und der Beschreibung - Attribute, die beide Kern sind.
Der Code, den ich habe, lautet wie folgt:
$_categories = Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('name')
->addAttributeToSelect('description')
->addAttributeToSelect('associated_brand')
->addAttributeToSelect('image')
->setPageSize(12)
->setCurPage(1)
->addAttributeToFilter('level',['gt' => 2])
->addAttributeToFilter('is_active',['eq'=>true])
->addAttributeToFilter(
[
['attribute' => 'name', 'like' => '%'.$searchterm.'%'],
['attribute' => 'description', 'like' => '%'.$searchterm.'%']
]
)->load();
Vor dem Aktivieren des flachen Katalogs für Kategorien wurden die erwarteten Ergebnisse zurückgegeben - alle Kategorien, deren Name oder Beschreibung mit dem Suchbegriff übereinstimmt.
Wenn der flache Katalog aktiviert ist, funktioniert die Namens- oder Beschreibungssuche nicht. Wenn ich die zugrunde liegende Sammlungsabfrage ausgeben möchte, ist dies wie folgt:
SELECT `main_table`.`entity_id`, `main_table`.`level`, `main_table`.`path`, `main_table`.`position`, `main_table`.`is_active`, `main_table`.`is_anchor`, `main_table`.`name`, `main_table`.`description`, `main_table`.`associated_brand`, `main_table`.`image`
FROM `catalog_category_flat_store_1` AS `main_table`
WHERE (level > 2) AND (is_active = '1')
Wie aus dem Obigen ersichtlich ist, fehlen der Name und die Beschreibungsklausel vollständig.
Ich habe die generierte catalog_category_flat_store_1
Tabelle überprüft und die Felder sind dort vorhanden.
Irgendwelche Ideen, warum Magento diese Filter nur bei Verwendung des flachen Katalogs aus der Abfrage entfernt?