我相信这可以解决一些聪明的mysql表达式或zend连接,但我只是没有足够的知识在这里解决,希望有人在SO社区可以。
假设我有一个Magento中的产品集合,它们按类别位置排序。
我只想从集合中检索2个产品,即类别位置最高的产品。
下面应该说明:
Category:
Product A (position 3);
Product B (position 1);
Product C (position 0);
Product D (position 2);
在这个集合中,我只想检索产品C和B,因为它们是两个最高的位置。
另一个例子:
Category:
Product A (position 1);
Product B (position 3);
Product C (position 0);
Product D (position 2);
在这个集合中,我只想检索产品C和a。
如何在单个集合负载中完成此操作?例如,我不想加载集合,然后迭代和手动排序等。
$_category = Mage::getModel('catalog/category')->load($categoryId);
$coll = $_category->getProductCollection()->addAttributeToSort('position','ASC');
$coll->getSelect()->limit(2);
$coll->load();
之后你可以遍历你的集合:
foreach ($coll as $product) {
// Do sth. with $product
}