我正在尝试在主页上创建包含最新产品的集合。到目前为止,这是我的代码:
$_productCollection = clone $this->getLoadedProductCollection();
$_productCollection->clear()
->setPageSize(40)
->setOrder('created_at', 'desc')
->load();
这将返回40个产品,但订单不正确。
我尝试了很多事情......有人能帮助我吗?
答案 0 :(得分:0)
我不确定你的确切问题是什么,但这是一个方便的调试方法,可以让你上路。
您始终可以使用Zend_Db_Select
对象中提供的方法检查集合查询。例如,在您的情况下,我们可以运行:
echo (string) $_productCollection->getSelect()->assemble();
您还可以将true
作为参数添加到->load()
方法调用->load(true)
,以便在浏览器中打印出来。
答案 1 :(得分:0)
或者您可以通过php文件中的直接查询来欺骗并获取ID列表:
SELECT entity_id, sku FROM catalog_product_entity ORDER BY created_at DESC LIMIT 0,40;
正如人们所希望的那样,结果与按entity_id订购的结果相同。
答案 2 :(得分:0)
在您的收藏集中使用以下内容:
$collection->addAttributeToSort('news_from_date', 'desc');
$collection->addAttributeToSort('created_at', 'desc');
答案 3 :(得分:0)
您需要先清理对象。为此:
$_productCollection = $this->getLoadedProductCollection()
->clear()
->addAttributeToSort('created_at', 'DESC');
除了created_at,您还可以使用name,updated_at,sku等。
希望它有所帮助。