1

我正在使用一系列类别

foreach(Mage::getModel('catalog/category')->getCollection() as $category)

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

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

我想要为每个特定类别选择特定的排序顺序。有没有办法找回这个?还是我需要编写自己的 SQL?在这种情况下,我需要查询哪个表?

我正在使用magento企业版。1.11.1.0

4

1 回答 1

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
)
于 2012-12-14T13:18:07.720 回答