【问题标题】:PHP - Magento - pager.phtml - addAttributeToFilterPHP - Magento - pager.phtml - addAttributeToFilter
【发布时间】:2016-07-14 03:32:01
【问题描述】:

在 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();

【问题讨论】:

    标签: php magento


    【解决方案1】:

    也许你需要包含 addAttributeToSelect:

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

    编辑 1

    好的,你需要进入文件app/code/core/Mage/Catalog/Model/Category.php并尝试编辑方法getProductCollection() from:

    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;
        }
    

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

    【讨论】:

    • 谢谢,但这并没有解决问题。还有其他建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多