Magentoで、eav以外のコレクションを使用する場合、並べ替え順序を追加するための最良の方法は何ですか?
eavコレクションでは、これを行うための便利な方法があると思いますが、eav以外では、同じ機能はないようです。
Magentoで、eav以外のコレクションを使用する場合、並べ替え順序を追加するための最良の方法は何ですか?
eavコレクションでは、これを行うための便利な方法があると思いますが、eav以外では、同じ機能はないようです。
両方の Magento コレクション スーパークラス (Mage_Core_Model_Resource_Db_Collection_Abstract
およびMage_Eav_Model_Entity_Collection_Abstract
) は、コレクション スーパークラスから 3 つのパブリック コンビニエンス メソッドを継承しますVarien_Data_Collection_Db
。
setOrder()
addOrder()
、のエイリアスsetOrder()
unshiftOrder()
、並べ替えパラメーターを最初の位置に移動するためEAV コレクション スーパークラスは、別のメソッド を提供します。このメソッドはaddAttributeToSort()
、ソートのために属性がコレクションに確実に結合されるようにします。
Vinaiが彼の tumblr で指摘しているように、これらのメソッドがいつ、どのように動作するかについて、いくつかの考慮事項があります。
カスタムモジュールコレクション(フラットコレクション)をソートするために私にとってうまくいった唯一の方法は、次のように使用することです:
$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');