我正在使用
获取类别集合foreach(Mage::getModel('catalog/category')->getCollection() as $category)
对于这些类别中的每一个,我都需要检索排序顺序。我该怎么做?
我能找到的唯一一个在类别类中看起来相关的函数是getDefaultSortBy(),它总是返回news_from_date,它既不是默认的排序顺序(位置),也不是选定的排序顺序(价格),所以我不这样做知道从哪里获得价值。我还注意到,如果在magento后端,我更改了可用排序顺序列表,则函数getAvailableSortByOptions仍然总是返回相同的数组。从这两个事实中,我得出结论,类别函数必须访问某种跨类别的全局设置,这对我来说是无用的。
我希望为每个特定类别选择特定的排序顺序。有没有办法检索这个?或者我需要编写自己的SQL吗?在这种情况下,我需要查询哪个表?
我使用的是magento enterprise ver。 1.11.1.0
答案 0 :(得分:1)
找到答案。当然,我发布问题后的那一刻!
问题是Mage :: getModel('catalog / category') - > getCollection()不会自动加载所有类别属性。您必须指明要手动检索的那些。所以,我需要替换它:
foreach(Mage::getModel('catalog/category')->getCollection() as $category)
有了这个:
foreach(
Mage::getModel('catalog/category')->getCollection()
->addAttributeToSelect('default_sort_by')
->addAttributeToSelect('available_sort_by')
as $category
)