コレクションのカスタムソート順


7

画像に示すように、「id」ではなく「sort_order」フィールドに基づいてコレクションをソートする必要があります。 ここに画像の説明を入力してください

$collection=Mage::getResourceModel('banners/manage_collection');
$collection->getSelect()->order('sort_order','DESC');

そして

私はこれを試しましたが、常にidフィールドに基づいてコレクションを返します。

回答:


20

次のコードを__construct呼び出した後、グリッドブロックのメソッドにこのコードを追加できますparent::__construct();

$this->setDefaultSort('sort_order');
$this->setDefaultDir('ASC'); 

編集
フロントエンドの場合、これを使用できます:

$collection = Mage::getResourceModel('banners/manage_collection');
$collection->setOrder('sort_order','DESC');

並べ替え順序に基づいてフロントエンドにアイテムを表示する必要があります。上記のコードが機能するかどうかは不明ですか?
blakcaps 2013年

2
@blakcaps。次に、それを質問で述べる必要があります。あなたはバックエンドのスクリーンショットを投稿したので、バックエンドでのデフォルトの並べ替えが必要だと思いましたsort_order
Marius

@Mariusのデフォルトのソートは、1つの列に基づいて行われます。私の場合、最優先事項はステータスと変更日です。5つのアクティブな列と5つの非アクティブな列がある場合、5つのすべてのアクティブなレコードが最初に来る必要があり、以前に変更された5つのうち最初に5つの非アクティブな最新の変更が最初に来る必要があります。
バタフライ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.