如何限制 Magento 中的结果数量?
我的目录/产品控制器中有最近的产品操作。
我检索按实体 ID 排序的所有产品。效果很好。
问题是我只想在 4 页中展示 20 个产品。
我尝试扩展 Mage_Catalog_Block_Product_List
并覆盖 _getProductCollection()
我做了这样的事情:
$this->_productCollection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSort('entity_id', 'desc')
->addStoreFilter();
重要的部分:
$this->_productCollection->getSelect()->limit($this->getProductsLimit());
如果我“转储”返回的对象,我会得到类似的东西:
["限制计数"] =>整数(5) [“限制偏移”] => int(0)
所以它看起来被分页器覆盖。
您知道如何正确限制结果数量吗?
对于优化和演示,我实际上不想检索所有产品集合。
谢谢
I've a recent products action in my Catalog/Product controllers.
I retrieve all the product sorted by entity id. Works great ok.
The problem is I just want to show 20 products in 4 pages.
I tried to extend Mage_Catalog_Block_Product_List
and override _getProductCollection()
and I did something like this:
$this->_productCollection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSort('entity_id', 'desc')
->addStoreFilter();
And the important part:
$this->_productCollection->getSelect()->limit($this->getProductsLimit());
If I 'dump' the returned Object I've something like this:
["limitcount"] => int(5)
["limitoffset"] => int(0)
So it looks to be overriden by the paginator.
Do you know a way to limit properly the number of result?
For both optimization and presentation I actually don't want to retrieve all the products collection.
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
那应该有效...
That should work...
试试这个
$this->_productCollection = Mage::getModel('catalog/product')->getCollection()
-> 设置页面大小(20)
->setCurPage(1);
Try this
$this->_productCollection = Mage::getModel('catalog/product')->getCollection()
->setPageSize(20)
->setCurPage(1);
另一种同样有效的方法是:
Another, equally valid, way is with:
选择 20 个产品:-
Select 20 products:-
获取集合后尝试以下操作:
$this->_productCollection->getSelect()->limit( 20 );
Try this after obtaining the collection:
$this->_productCollection->getSelect()->limit( 20 );