首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取最近售出的5种独特产品

获取最近售出的5种独特产品
EN

Stack Overflow用户
提问于 2012-08-09 22:03:25
回答 1查看 458关注 0票数 0

我想获取最近出售的5个独特的项目在magento,我有下面的代码片段。它显示一个空白页面,但是当我从下面的代码中删除->getSelect()->group('product_id')时,它可以工作,但项不再是唯一的。

代码语言:javascript
运行
复制
   $itemsCollection= Mage::getResourceModel('sales/order_item_collection')
        ->join('order', 'order_id=entity_id')   
        ->getSelect()->group('product_id')
        ->setOrder('order_id', 'desc')
        ->setPage(1, 5) ;

如何按这些产品分组?

EN

Stack Overflow用户

回答已采纳

发布于 2012-08-10 18:24:00

您的代码几乎是正确的-问题在于您如何将方法调用链接在一起。

当链接方法调用时,每个调用都将返回一个对象,通常是对同一个类的引用。因此,在您的示例中,->getSelect()->group()调用出现了错误,因为这两个调用返回的是对Varien_Db_Select对象的引用,而不是您预期的Mage_Sales_Model_Resource_Order_Item_Collection对象。

(还要注意,对于最新的订单,按created_at排序比按order_id排序更安全)

所以,一个有效的例子是...

代码语言:javascript
运行
复制
// Initialise the collection
$itemsCollection = Mage::getModel('sales/order_item')->getCollection()
    ->setOrder('created_at', Varien_Data_Collection::SORT_ORDER_DESC)
    ->addAttributeToSelect('*')  //Change this to only select the fields you require
    ->setPage(1, 5)
;

// Separately add the GROUP BY clause
$itemsCollection->getSelect()->group('product_id');

// Now you can safely iterate over the collection
foreach($itemsCollection as $item) {
    echo $item->getData('product_id') . ' - ' . $item->getData('created_at') . '<br/>';
}
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11885219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档