gpt4 book ai didi

Magento:从产品集合中获取所有产品而忽略设置的限制?

转载 作者:行者123 更新时间:2023-12-04 06:06:25 24 4
gpt4 key购买 nike

我想遍历块 Mage_Catalog_Block_Product_List_Toolbar 中给出的产品集合中的所有产品,忽略之前由“setPageSize()”和“setCurPage()”设置的限制。我的方法如下所示:

/** @var Mage_Catalog_Block_Product_List_Toolbar $this */
//...
$collection = $this->getCollection();
// Remove the LIMIT and OFFSET parts from the generated SQL query:
$collection->getSelect()->reset(Zend_Db_Select::LIMIT_COUNT);
$collection->getSelect()->reset(Zend_Db_Select::LIMIT_OFFSET);
// Reload the collection using the new SQL query:
$collection->load();
foreach($collection as $product)
{
// ...
}
// ...

问题是,集合似乎没有被重新加载,所以之前设置的限制仍然存在。我在这里缺少什么?收藏集是否已锁定或因某些原因无法更改?

最佳答案

您在产品列表工具栏块中使用的集合,通常之前已经加载并由Mage_Catalog_Block_Product_List::_beforeHtml()设置到工具栏实例中.

仅重置语句的计数和偏移量是不够的。

您还需要重置属性

Varien_Data_Collection::_isCollectionLoaded
Varien_Data_Collection::_pageSize

这可以通过
$collection->clear();
$collection->setPageSize(false);

在您的 reset 之间插入这些说明的和 load你应该没事的。

关于Magento:从产品集合中获取所有产品而忽略设置的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12041177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com