有谁知道的一个聪明的方式来读取排序顺序从Magento的产品集合阵列?对象中有一个受保护的属性_orders
。我能达到它在获取集合排序字段
$collection->getSelect()->getPart('order')
但后来我不得不做字符串解析。 我希望有某种将获取排序顺序从产品收集信息的公开方法?
有谁知道的一个聪明的方式来读取排序顺序从Magento的产品集合阵列?对象中有一个受保护的属性_orders
。我能达到它在获取集合排序字段
$collection->getSelect()->getPart('order')
但后来我不得不做字符串解析。 我希望有某种将获取排序顺序从产品收集信息的公开方法?
对于产品收集与工具栏,你可以问工具栏的当前排序顺序:
Mage::getBlockSingleton('catalog/product_list_toolbar')->getCurrentOrder()
您可以使用Reflection
:
$property = new ReflectionProperty(get_class($collection), '_orders');
$property->setAccessible(true);
$orders = $property->getValue($collection);
但你不会避免一些字符串解析,如为了值存储在字符串($field.' '.Varien_Data_Collection::SORT_ORDER_(ASC|DESC)
)
烨我认为'Reflection'但它似乎有点哈克。这是一个解决方案,但。 – srgb
它适合我目前的情况,但这种方法的缺点是,它仅列出一个顺序,其中作为收集可能有两个或更多。在这种情况下,'Reflection'可能是一个更好的解决方案 – srgb