我试图拉类属于当前商店只,但它似乎并没有工作。任何人都可以在代码中看到任何问题?Magento - 通过store_id筛选类别资源集合
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
->setStoreId(Mage::app()->getStore()->getId())
->addFieldToFilter('include_in_menu', array('eq' => 1))
->addFieldToFilter('is_active', array('eq' => 1))
->addFieldToFilter('level', array('eq' => 2))
->addAttributeToSelect(array('name','url_path','image','description'))
->setOrder('position', 'asc');
$categoryCollection->printLogQuery(true);
这是从STORE_ID 0获取数据为好,但我想只从商店编号2
SELECT `e`.*, IF(at_include_in_menu.value_id > 0, at_include_in_menu.value, at_include_in_menu_default.value) AS `include_in_menu`, IF(at_is_active.value_id > 0, at_is_active.value, at_is_active_default.value) AS `is_active` FROM `catalog_category_entity` AS `e`
INNER JOIN `catalog_category_entity_int` AS `at_include_in_menu_default` ON (`at_include_in_menu_default`.`entity_id` = `e`.`entity_id`) AND (`at_include_in_menu_default`.`attribute_id` = '67') AND `at_include_in_menu_default`.`store_id` = 0
LEFT JOIN `catalog_category_entity_int` AS `at_include_in_menu` ON (`at_include_in_menu`.`entity_id` = `e`.`entity_id`) AND (`at_include_in_menu`.`attribute_id` = '67') AND (`at_include_in_menu`.`store_id` = 2)
INNER JOIN `catalog_category_entity_int` AS `at_is_active_default` ON (`at_is_active_default`.`entity_id` = `e`.`entity_id`) AND (`at_is_active_default`.`attribute_id` = '42') AND `at_is_active_default`.`store_id` = 0
LEFT JOIN `catalog_category_entity_int` AS `at_is_active` ON (`at_is_active`.`entity_id` = `e`.`entity_id`) AND (`at_is_active`.`attribute_id` = '42') AND (`at_is_active`.`store_id` = 2) WHERE (`e`.`entity_type_id` = '3') AND (IF(at_include_in_menu.value_id > 0, at_include_in_menu.value, at_include_in_menu_default.value) = 1) AND (IF(at_is_active.value_id > 0, at_is_active.value, at_is_active_default.value) = 1) AND (`e`.`level` = 2)
UPDATE
而是存储滤波器的,我这解决了刚添加的路径过滤器问题,但仍然很想知道商店过滤器是否有效。
$storeId = Mage::app()->getStore()->getId();
$categoryRootId = Mage::app()->getStore($storeId)->getRootCategoryId();;
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
->addFieldToFilter('path', array('like' => "%/{$categoryRootId}/%"))
->addFieldToFilter('include_in_menu', array('eq' => 1))
->addFieldToFilter('is_active', array('eq' => 1))
->addFieldToFilter('level', array('eq' => 2))
->addAttributeToSelect(array('name','url_path','image','description','store_id'))
->setOrder('position', 'asc')
->load();
我试过那太多,但没有奏效。 –