有誰知道的一個聰明的方式來讀取排序順序從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