在 Magento 中,当使用非 eav 集合时,添加排序顺序的最佳方法是什么?
对于 eav 集合,我相信有一些方便的方法可以做到这一点,但对于非 eav,似乎没有相同的设施。
在 Magento 中,当使用非 eav 集合时,添加排序顺序的最佳方法是什么?
对于 eav 集合,我相信有一些方便的方法可以做到这一点,但对于非 eav,似乎没有相同的设施。
Magento 集合超类 (Mage_Core_Model_Resource_Db_Collection_Abstract
和Mage_Eav_Model_Entity_Collection_Abstract
) 都从集合超类继承了三个公共便利方法Varien_Data_Collection_Db
:
setOrder()
addOrder()
, 的别名setOrder()
unshiftOrder()
, 用于将排序参数移动到第一个位置EAV 集合超类提供了另一种方法 ,addAttributeToSort()
它确保将属性连接到集合以进行排序。
对我来说对自定义模块集合(平面集合)进行排序的唯一方法是用作:
$sortField = 'field-goes-here';
$direction = 'ASC'; //or 'DESC'
$collection->getSelect()->order($sortField , $direction);
希望这可以帮助。
试试这个
$_productCollection=Mage::getResourceModel('catalog/product_collection')->addCategoryFilter($_category)->setOrder('field-goes-here', 'DESC');
$collection->getSelect()->order($sortField , $direction);
替换为:
$collection->getSelect()->order($sortField . $direction);
订单期望 1 个参数