How to Apply OR Conditions to Collection in Magento 2
Steps to Apply OR Conditions to Collection in Magento 2:
Step 1: Apply OR condition for Magento 2 addAttributeToFilter collection
protected $_productCollection;
public function __construct(
\Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection)
{
$this->_productCollection = $productCollection;
}
public function getProductCollection()
{
$this->_productCollection->addAttributeToFilter(array(
array(
'attribute' => 'sku',
'like' => '24MB%’),
array(
'attribute' => 'type_id',
'eq' => 'simple')
));
echo $this->_productCollection->getSelect();
}
Output:
SELECT `e`.* FROM `catalog_product_entity` AS `e` WHERE ((`e`.`sku` LIKE '24MB%') OR (`e`.`type_id` = 'simple'))
Step 2: Apply OR condition for Magento 2 addFieldToFilter collection
protected $_orderCollection;
public function __construct(
\Magento\Sales\Model\ResourceModel\Order\Collection $orderCollection)
{
$this->_orderCollection = $orderCollection;
}
public function getOrderCollection()
{
$this->_orderCollection->addAttributeToFilter(array(
array(
'attribute' => 'sku',
'like' => '24MB%’),
array(
'attribute' => 'type_id',
'eq' => 'simple')
));
echo $this->_orderCollection->getSelect();
}
Output:
SELECT `main_table`.* FROM `sales_order` AS `main_table` WHERE ((`customer_is_guest` = 1) OR (`status` = 'pending'))
Comments
Post a Comment