2014-09-05 22 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