PHP - Magento - pager.phtml - addAttributeToFilter

时间:2016-07-14 03:32:02

标签: php magento

我遇到麻烦,让寻呼机按照我的要求在Magento工作。

问题是:

我正在收集一个产品系列,我只过滤了带图像的产品。

但是分页仍然显示未应用过滤的产品总数,我该如何解决?

实施例:       我有38个产品,其中只有23个有图像关联,如果我定义按页面显示9个产品它应该呈现1 | 2 | 3。但它仍然显示1 | 2 | 3 | 4 | 5。

提前致谢,以下是我用来过滤产品的代码。

 $_productCollection = clone $this->getLoadedProductCollection()
       ->clear()
       ->addAttributeToFilter('small_image', array('neq' => 'no_selection'))
       ->load();

1 个答案:

答案 0 :(得分:1)

也许您需要包含addAttributeToSelect:

$_productCollection = clone $this->getLoadedProductCollection()
->clear()
->addAttributeToSelect('*')
->addAttributeToFilter('image', array('neq' => 'no_selection'));

编辑1

好的,您需要进入文件app/code/core/Mage/Catalog/Model/Category.php并尝试从以下位置编辑方法getProductCollection()

public function getProductCollection()
    {
        $collection = Mage::getResourceModel('catalog/product_collection')
            ->setStoreId($this->getStoreId())
            ->addCategoryFilter($this);
        return $collection;
    }

成:

public function getProductCollection()
    {
        $collection = Mage::getResourceModel('catalog/product_collection')
            ->setStoreId($this->getStoreId())
            ->addAttributeToFilter('small_image', array('neq' => 'no_selection'))
            ->addCategoryFilter($this);
        return $collection;
    }

当然,您不应该直接编辑它,然后在本地池中覆盖它。可以删除克隆代码。