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