2013-05-27 37 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