Try following way:
use Magento\Framework\Api\FilterBuilder;
use Magento\Framework\Api\Search\FilterGroupBuilder;
use Magento\Framework\Api\SearchCriteriaBuilder;
use Magento\Cms\Model\BlockRepository;
DI
/**
* @var FilterBuilder
*/
private $filterBuilder;
/**
* @var FilterGroupBuilder
*/
private $filterGroupBuilder;
/**
* @var SearchCriteriaBuilder
*/
private $searchCriteriaBuilder;
/**
* @var BlockRepository
*/
private $blockRepository;
public function __construct(
FilterBuilder $filterBuilder,
FilterGroupBuilder $filterGroupBuilder,
SearchCriteriaBuilder $searchCriteriaBuilder,
BlockRepository $blockRepository
) {
$this->filterBuilder = $filterBuilder;
$this->filterGroupBuilder = $filterGroupBuilder;
$this->searchCriteriaBuilder = $searchCriteriaBuilder;
$this->blockRepository = $blockRepository;
}
Now:
$filter = $this->filterBuilder->setField('identifier')
->setConditionType('eq')
->setValue('men-block')
->create();
$filter2 = $this->filterBuilder->setField('identifier')
->setConditionType('eq')
->setValue('gear-block')
->create();
$filterGroup = $this->filterGroupBuilder->setFilters([$filter, $filter2])
->create();
$filter3 = $this->filterBuilder->setField('is_active')
->setConditionType('eq')
->setValue(1)
->create();
$filterGroup2 = $this->filterGroupBuilder->setFilters([$filter3])
->create();
$searchCriteria = $this->searchCriteriaBuilder->setFilterGroups([$filterGroup, $filterGroup2])
->create();
$blockItems = $this->blockRepository->getList($searchCriteria)->getItems();
Query:
SELECT `main_table`.* FROM `cms_block` AS `main_table` WHERE ((`identifier` = 'men-block') OR (`identifier` = 'gear-block')) AND ((`is_active` = 1))