如何以编程方式获取magento类别排序顺序

时间:2012-12-14 13:05:07

标签: php magento

我正在使用

获取类别集合
foreach(Mage::getModel('catalog/category')->getCollection() as $category)

对于这些类别中的每一个,我都需要检索排序顺序。我该怎么做?

我能找到的唯一一个在类别类中看起来相关的函数是getDefaultSortBy(),它总是返回news_from_date,它既不是默认的排序顺序(位置),也不是选定的排序顺序(价格),所以我不这样做知道从哪里获得价值。我还注意到,如果在magento后端,我更改了可用排序顺序列表,则函数getAvailableSortByOptions仍然总是返回相同的数组。从这两个事实中,我得出结论,类别函数必须访问某种跨类别的全局设置,这对我来说是无用的。

我希望为每个特定类别选择特定的排序顺序。有没有办法检索这个?或者我需要编写自己的SQL吗?在这种情况下,我需要查询哪个表?

我使用的是magento enterprise ver。 1.11.1.0

1 个答案:

答案 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
)