添加自定义属性以在洋红色的产品集合中进行筛选


Add custom attribute to filter in product collection in magento

我需要添加自定义属性来过滤产品集合

我尝试了下面的代码,但过滤器不起作用

$_productCollections=$this->getLoadedProductCollection();
$_productCollection = $_productCollections->addAttributeToFilter('weight', array('lt' => 100));

下面的代码正在工作

$collection = Mage::getModel('catalog/product')->getCollection();
$_productCollection = $collection->addAttributeToFilter('weight', array('lt' => 100));

我需要正确的方法来为权重属性添加过滤器范围,例如

->addAttributeToFilter('weight', array('lt' => 100));

在默认产品集合( $this->getLoadedProductCollection();

我有一个解决方案来解决这个问题

步骤1:

列表的重复块代码

'app'code'core'Mage'Catalog'Block'Product'List.php to 
'app'code'local'Mage'Catalog'Block'Product'List.php

步骤2:

将以下代码从

$this->_productCollection = $layer->getProductCollection();

$this->_productCollection = $layer->getProductCollection()->addAttributeToFilter('weight', array('lt' => 100));

这是正确解决问题的简单解决方案。

尝试使用以下命令显式选择属性:

$_productCollection->addAttributeToSelect('weight');

然后过滤:

$_productCollections->addAttributeToFilter('weight', array('lt' => 100));

另一种方法是默认选择产品集合中的属性,方法是将其放在模块的配置.xml中:

<config>
<frontend>
     <product>
          <collection>
               <attributes>
                  <weight />
               </attributes>
          </collection>
      </product>
</frontend>

然后你应该能够像往常一样做过滤器:

$_productCollections->addAttributeToFilter('weight', array('lt' => 100));

也许,集合已经加载。在加载集合之前添加筛选器

($this->_getProductCollection()->load())