我正在尝试根据store_id获取类别列表,但我的所有尝试都失败了
我试过
$categories = Mage::getModel('catalog/category')
->getCollection()
->setStoreId(21)
->addAttributeToSelect('*');
但它给了我所有商店的所有类别,我试过
->addFieldToFilter('store_id', '21')
和 - > addStoreFilter(21)
但没有运气,我们将非常感谢任何帮助或建议,并提前感谢您
答案 0 :(得分:4)
magento中的类别不必存储关系(因为它用于商店(商店可以指定子类别作为其根类别)等等。)因此,您创建它的任何类别都将在所有商店中可见。 / p>
但是is has属性is_active(这是商店视图范围)。
所以要获取特定商店中的类别(您需要确保其在其他商店中不活跃)
并使用属性
过滤->addFieldToFilter('is_active', 1)
希望这对你有所帮助。
答案 1 :(得分:2)
这适用于1.9
$storeId = Mage::app()->getStore()->getStoreId();
$rootCategoryId = Mage::app()->getStore($storeId)->getRootCategoryId();
$categories = Mage::getModel('catalog/category')
->getCollection()
->setStoreId($storeId)
->addFieldToFilter('is_active', 1)
->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"))
->addAttributeToSelect('*');
答案 2 :(得分:1)
试试这个:
$storeId = 21;
$rootCategoryId = Mage::app()->getStore($storeId)->getRootCategoryId();
$categories = Mage::getModel('catalog/category')->getCollection();
$categories->addAttributeToFilter('path', array('like' => "1/{$rootCategoryId}/%"));
答案 3 :(得分:-1)
$storeId=21;
->addFieldToFilter('store_id',$storeId)