ไม่มีฟังก์ชั่นในการจัดเรียง
เพราะgetAllItems
มาจากarray
วัตถุและตามฉันconcept you cannot sort this by field.
public function getAllItems()
{
$items = array();
foreach ($this->getItemsCollection() as $item) {
if (!$item->isDeleted()) {
$items[] = $item;
}
}
return $items;
}
ในกรณีนี้คุณสามารถใช้getItemsCollection().
จากนั้นใช้ฟังก์ชั่น seOrder เรียงตามฟิลด์ใด ๆ
$items=$quote->getItemsCollection()->setOrder('updated_at', 'desc');
foreach ($items as $item) {
if (!$item->isDeleted()) {
//Do your code $item
}
}
แก้ไข:
เขียนคลาส Mage_Sales_Model_Quote
มันจะเป็นการดีกว่าถ้าคุณจะเขียน class ใหม่Mage_Sales_Model_Quote
ใน magento การโทรนี้เป็นcalled getAllItems()
ฟังก์ชั่นและetItemsCollection() function
ตอบสนองหลักg สำหรับการรับไอเท็มทั้งหมด
<global>
<models>
<magento65343>
<class>StackExchange_Magento65343_Model</class>
<resourceModel>magento65343_mysql4</resourceModel>
</magento65343>
<sales>
<rewrite>
<quote>StackExchange_Magento65343_Model_Sales_Quote</quote>
</rewrite>
</sales>
</models>
เขียนซ้ำชั้น:
<?php
class StackExchange_Magento65343_Model_Sales_Quote extends Mage_Sales_Model_Quote
{
}
ใช้ฟังก์ชัน setOrder () เพื่อจัดเรียง:
setOrder ()ฟังก์ชั่นการจัดเรียงคอลเลกชันรายการจากสนาม
<?php
class StackExchange_Magento65343_Model_Sales_Quote extends Mage_Sales_Model_Quote
{
public function getItemsCollection($useCache = true)
{
if ($this->hasItemsCollection()) {
return $this->getData('items_collection');
}
if (is_null($this->_items)) {
$this->_items = Mage::getModel('sales/quote_item')->getCollection()->setOrder('updated_at', 'desc');
$this->_items->setQuote($this);
}
return $this->_items;
}
}