Magento Collection - setOrder和getFirstItem

Pat*_*ohn 2 collections magento

我正在编写一个插件并在magento数据库中添加了一个自己的db表.

现在我想从表中按顺序获取一些数据,然后我添加了代码.

但每当我转储最后一行的结果时,我按照它们在表中的顺序得到数据,而不是按给定参数排序.谁能帮我这个?

$collection = $this->getCollection();
$collection->setOrder(array('fieldname' =>  'asc', 'fieldname' =>  'desc'));
$collection->getFirstItem()->getData(); 
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以为不同的列多次调用setOrder函数.

$collection = $this->getCollection()
        ->setOrder('fieldname', 'asc')
        ->setOrder('fieldname2');
Run Code Online (Sandbox Code Playgroud)

注意:默认情况下将使用Direction DESC.

  • 感谢您关于默认方向的警告。如果没有它,我可能会认为我的代码根本没有做任何事情。使用 Magento 大约 5 年之后,我仍然经常惊讶于它如何设法使一切变得如此复杂,包括它的数据库抽象:“嘿,这里有一个想法,你知道这个默认值在 SQL 中已经存在了大约 50 年,世界各地的每个 IT 专业人员都非常熟悉,甚至不需要考虑它?让我们改变它!” (2认同)