Magento2: setFilterGroups(array) SearchCriteria Error
-
10-10-2020 - |
Question
I have the following code:
$filter1 = $this->_filterBuilder->setField('name')
->setValue('%'.$searchTerm.'%')
->setConditionType("like")
->create();
$filter2 = $this->_filterBuilder->setField('description')
->setValue('%'.$searchTerm.'%')
->setConditionType("like")
->create();
$filterOR = $this->_filterGroupBuilder->addFilter($filter1)->addFilter($filter2)->create();
$this->_searchCriteriaBuilder->setFilterGroups([$filterOR]);
$this->_searchCriteriaBuilder->addSortOrder($searchOrder, SortOrder::SORT_ASC);
$searchCriteria = $this->_searchCriteriaBuilder->setCurrentPage($page)->setPageSize($pageSize)->create();
$searchResults = $this->_productRepository->getList($searchCriteria);
It throws an error:
Call to undefined method Magento\Framework\Api\Search\SearchCriteriaBuilder::setFilterGroups()
why?
Solution
There is no method setFilterGroups in the class Magento\Framework\Api\Search\SearchCriteriaBuilder
Not sure if this will work but you can try to remove the line that contains setFilterGroups
and after the line
$searchCriteria = $this->_searchCriteriaBuilder->setCurrentPage($page)->setPageSize($pageSize)->create();
add this
$searchCriteria->setFilterGroups([$filterOR]);
there is a mehtod setFilterGroups
in Magento\Framework\Api\SearchCriteriaInterface
and SearchCriteria
class.
Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange