2

在 Magento 中,当使用非 eav 集合时,添加排序顺序的最佳方法是什么?

对于 eav 集合,我相信有一些方便的方法可以做到这一点,但对于非 eav,似乎没有相同的设施。

4

4 回答 4

10

Magento 集合超类 (Mage_Core_Model_Resource_Db_Collection_AbstractMage_Eav_Model_Entity_Collection_Abstract) 都从集合超类继承了三个公共便利方法Varien_Data_Collection_Db

EAV 集合超类提供了另一种方法 ,addAttributeToSort()它确保将属性连接到集合以进行排序。

正如Vinai在他的 tumblr上指出的那样,这些方法的行为方式和时间需要考虑一些因素。

于 2012-07-05T23:46:23.550 回答
4

对我来说对自定义模块集合(平面集合)进行排序的唯一方法是用作:

$sortField = 'field-goes-here';
$direction = 'ASC'; //or 'DESC'
$collection->getSelect()->order($sortField , $direction);

希望这可以帮助。

于 2012-07-06T06:35:29.663 回答
2

试试这个

$_productCollection=Mage::getResourceModel('catalog/product_collection')->addCategoryFilter($_category)->setOrder('field-goes-here', 'DESC');
于 2012-10-25T12:05:56.513 回答
0
$collection->getSelect()->order($sortField , $direction);

替换为:

$collection->getSelect()->order($sortField . $direction);

订单期望 1 个参数

于 2016-03-04T10:58:21.223 回答