添加自定义属性以过滤 magento 中的产品集合
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();
)
尝试明确选择属性:
$_productCollection->addAttributeToSelect('weight');
然后过滤:
$_productCollections->addAttributeToFilter('weight', array('lt' => 100));
另一种方法是默认选择产品集合中的属性,方法是将其放在模块的 config.xml 中:
<config>
<frontend>
<product>
<collection>
<attributes>
<weight />
</attributes>
</collection>
</product>
</frontend>
那么你应该可以像往常一样进行过滤了:
$_productCollections->addAttributeToFilter('weight', array('lt' => 100));
也许,集合已经加载。在加载集合之前添加过滤器
($this->_getProductCollection()->load())
这个问题我有一个答案
第一步:
列表的重复块代码
\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));
这是正确解决您的问题的一种简单方法。
我需要添加自定义属性来筛选产品集合
我试过下面的代码,但过滤器不工作
$_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();
)
尝试明确选择属性:
$_productCollection->addAttributeToSelect('weight');
然后过滤:
$_productCollections->addAttributeToFilter('weight', array('lt' => 100));
另一种方法是默认选择产品集合中的属性,方法是将其放在模块的 config.xml 中:
<config>
<frontend>
<product>
<collection>
<attributes>
<weight />
</attributes>
</collection>
</product>
</frontend>
那么你应该可以像往常一样进行过滤了:
$_productCollections->addAttributeToFilter('weight', array('lt' => 100));
也许,集合已经加载。在加载集合之前添加过滤器
($this->_getProductCollection()->load())
这个问题我有一个答案
第一步:
列表的重复块代码
\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));
这是正确解决您的问题的一种简单方法。