Magento 2 – Filter Product Collection by Multiple Attributes

attributesfiltermagento2.2.2product-collection

In Magento 2.2.2, How Can Filter Product Collection by Multiple Attributes.

I have the attribute_code with array values.

attribute_code: my_attribute_code

attribute_code values:

Array
(
  [0] => 12
  [1] => 10
);

Best Answer

Try this Code :

class HelloWorld extends \Magento\Framework\View\Element\Template
{    
    protected $_productCollectionFactory;

    public function __construct(
        \Magento\Backend\Block\Template\Context $context,        
        \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,        
        array $data = []
    )
    {    
        $this->_productCollectionFactory = $productCollectionFactory;    
        parent::__construct($context, $data);
    }

    public function getProductCollection()
    {
        $collection = $this->_productCollectionFactory->create();
        $collection->addAttributeToSelect('*');
        $collection->addFieldToFilter('my_attribute_code', array('in' => array(12,10)));
        return $collection;
    }
}
Related Topic