2014-09-05 24 views
2

我正在寫一個插件,並向magento數據庫中添加了一個自己的數據庫表。Magento Collection - setOrder和getFirstItem

現在我想從表中排序的順序獲取一些數據,我添加了代碼波紋管。

但每次我轉儲最後一行的結果我得到的數據按照他們在表中不按給定的參數排序的順序。誰能幫我這個?

$collection = $this->getCollection(); 
$collection->setOrder(array('fieldname' => 'asc', 'fieldname' => 'desc')); 
$collection->getFirstItem()->getData(); 
+0

$ collection-> setOrder('fieldname'=>'asc'); – 2014-09-05 11:32:49

回答

5

您可以撥打setOrder功能多次不同的列。

$collection = $this->getCollection() 
     ->setOrder('fieldname', 'asc') 
     ->setOrder('fieldname2'); 

注意:方向DESC將默認使用。

+1

感謝您提供有關默認方向的警告。沒有這些,我可能會認爲我的代碼根本就沒有做任何事情。 經過大約5年的Magento工作後,我仍然經常驚訝於它如何管理一切如此複雜,包括它的數據庫抽象:「嘿,這裏有一個想法,你知道這個默認值在SQL中約爲50這些年來,每個IT專業人員都很熟悉,他們甚至不需要考慮它,讓我們改變它吧!「 – 2015-05-25 12:44:44

+0

@DougMcLean我想你沒有嘗試Drupal;)從他們的角度來看,一個類別被稱爲分類OooO – 2015-07-20 13:57:30