【问题标题】:Magento: addAttributeToFilter to list Empty Multi Select AttributeMagento:addAttributeToFilter 列出空多选属性
【发布时间】:2012-07-14 11:46:24
【问题描述】:

对于多选属性,如何过滤产品集合以查找该属性未选择任何内容的产品?我尝试了以下方法,但都没有奏效:

$productCollection->addAttributeToFilter( 'multi_select_attribute', array( 'null' => true ) );
$productCollection->addAttributeToFilter( 'multi_select_attribute', array( 'null' => '' ) );
$productCollection->addAttributeToFilter( 'multi_select_attribute', array( 'eq' => '' ) ); 
$productCollection->addAttributeToFilter( 'multi_select_attribute', array( 'finset' => '') );

全部返回一个空集合。

那么,如何过滤产品集合以查找“multi_select_attribute”未选择任何内容的产品?

编辑 - 附加信息:

这就是我正在做的:

$productCollection = Mage::getResourceModel('catalog/product_collection');
$this->_addProductAttributesAndPrices($productCollection);
$productCollection->addStoreFilter();
$productCollection->addAttributeToFilter( ... one of the above ... );

【问题讨论】:

  • array( 'notnull' => '' ) 似乎列出了所有具有值的产品,但 array( 'null' => '' ) 返回一个空列表!
  • 它是您要添加到收藏中的唯一过滤器吗?你能提供更多代码吗?
  • 如果你用_addProductAttributesAndPrices注释掉一行会有什么变化吗?
  • notnull = 假?也许 finset => array('value'=>null)?

标签: magento


【解决方案1】:

如果您查看catalog_product_entity_varchar,您会发现那里只有实际为产品的多选属性填充的值。

这意味着如果没有为产品选择任何值,则不会在数据库中为该产品/多选属性写入任何内容,这意味着您至少需要进行某种联接或检索没有值的产品。

一种快速而肮脏的方法是首先获取具有此多选属性值的产品,然后将它们从原始集合中取回:

$attribute_code = 'multi_select_attribute';

// Get a product collection and add whatever filters you have to
$collectionWithMultiSelectValue = Mage::getModel('catalog/product')->getCollection();
$collectionWithMultiSelectValue->addAttributeToSelect($attribute_code)
->addFieldToFilter(array( array('attribute'=> $attribute_code, 'notnull' => true)));

// Take products with a value for the attribute off the collection
$productCollection->addAttributeToSelect('*')
->addAttributeToFilter('entity_id', array('nin' => $collectionWithMultiSelectValue->getAllIds()));

【讨论】:

    猜你喜欢
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 1970-01-01
    • 2011-01-01
    • 2020-07-08
    • 1970-01-01
    相关资源
    最近更新 更多