2013-05-27 36 views
0

有谁知道的一个聪明的方式来读取排序顺序从Magento的产品集合阵列?对象中有一个受保护的属性_orders。我能达到它在获取集合排序字段

$collection->getSelect()->getPart('order')

但后来我不得不做字符串解析。 我希望有某种将获取排序顺序从产品收集信息的公开方法?

回答

0

对于产品收集与工具栏,你可以问工具栏的当前排序顺序:

Mage::getBlockSingleton('catalog/product_list_toolbar')->getCurrentOrder() 
+0

它适合我目前的情况,但这种方法的缺点是,它仅列出一个顺序,其中作为收集可能有两个或更多。在这种情况下,'Reflection'可能是一个更好的解决方案 – srgb

1

您可以使用Reflection

$property = new ReflectionProperty(get_class($collection), '_orders'); 
$property->setAccessible(true); 
$orders = $property->getValue($collection); 

但你不会避免一些字符串解析,如为了值存储在字符串($field.' '.Varien_Data_Collection::SORT_ORDER_(ASC|DESC)

+0

烨我认为'Reflection'但它似乎有点哈克。这是一个解决方案,但。 – srgb