Magento 的 getItemsCollection 没有应用过滤器

Magento's getItemsCollection is not applying filters

我正在尝试将过滤器应用于报价项目集合,我使用此方法获取集合

$items_collection = Mage::getSingleton('checkout/session')->getQuote()->getItemsCollection();
$items_collection->addFieldToFilter('product_id', $_product->getId());

当我打印出 select 查询时,查询是正确的

$items_collection->getSelect()

但是当我遍历集合时,它正在获取所有项目,它没有应用过滤器,有人知道为什么吗?

foreach ($items_collection as $item) {
    // Do things....
}

试试这个。使用 getModel 而不是 getSingleton。

$items_collection = Mage::getModel('checkout/session')->getQuote()->getItemsCollection();
$items_collection->addFieldToFilter('product_id', $_product->getId());

foreach ($items_collection as $item) {
echo $item->getProduct()->getId();
}