Magento:无法使用自定义属性过滤器获取产品集合吗?

时间:2015-08-24 00:12:21

标签: php magento

我的magento目录中有一系列标记为采样器的产品。我需要撤回这个特定的集合。该属性是名为candies的属性集的一部分。

当我去加载集合时,我添加了一个过滤器以通过属性集缩小,然后为我创建的sampler属性添加另一个过滤器。无论我对过滤器做什么,我总是把所有糖果都拿回来,而不仅仅是将采样器属性设置为"是"或1.

这是我的代码,如何获得我想要的结果?

 $products = Mage::getModel('catalog/product')
    ->getCollection()
    ->addAttributeToSelect('*')  //select all fields available to product
    ->addFieldToFilter('attribute_set_id', 9) //filter the collection by the candies attribute set
    ->addAttributeToFilter('sampler','yes'); //filter the collection to only products that have the attribute sampler set to "yes" - this part doesnt work.

提前致谢。

2 个答案:

答案 0 :(得分:2)

请参阅:http://chat.stackoverflow.com/rooms/17/javascriptball-pit

在考虑此处的评论后,我会尝试此设置。

答案 1 :(得分:0)

您将遍历整个集合。加载每个产品的ID,然后使用-> getAttributeText('')。

    $collection = Mage::getModel('catalog/product')->getCollection()
        ->addAttributeToSelect('*')
    ->addAttributeToFilter('type_id', 'configurable')
    ;
    foreach ($collection as $_product) {
        $id =  $_product->getId();
        if($tncValue = $_product->load($id)->getAttributeText('terms_and_conditions')){
            echo $id . ' => ' . $tncValue . "\n";
        }
    }