Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SearchCriteriaBuilder.php
Go to the documentation of this file.
1 <?php
7 namespace Magento\Framework\Api;
8 
10 
15 {
20 
24  protected $filterBuilder;
25 
31  public function __construct(
33  FilterGroupBuilder $filterGroupBuilder,
35  ) {
36  parent::__construct(
38  );
39  $this->_filterGroupBuilder = $filterGroupBuilder;
40  $this->filterBuilder = $filterBuilder;
41  }
42 
48  public function create()
49  {
50  //Initialize with empty array if not set
51  if (empty($this->data[SearchCriteria::FILTER_GROUPS])) {
52  $this->_set(SearchCriteria::FILTER_GROUPS, []);
53  }
54  return parent::create();
55  }
56 
63  public function addFilters(array $filter)
64  {
65  $this->data[SearchCriteria::FILTER_GROUPS][] = $this->_filterGroupBuilder->setFilters($filter)->create();
66  return $this;
67  }
68 
75  public function addFilter($field, $value, $conditionType = 'eq')
76  {
77  $this->addFilters([
78  $this->filterBuilder->setField($field)
79  ->setValue($value)
80  ->setConditionType($conditionType)
81  ->create()
82  ]);
83  return $this;
84  }
85 
92  public function setFilterGroups(array $filterGroups)
93  {
94  return $this->_set(SearchCriteria::FILTER_GROUPS, $filterGroups);
95  }
96 
103  public function addSortOrder($sortOrder)
104  {
105  if (!isset($this->data[SearchCriteria::SORT_ORDERS])) {
106  $this->data[SearchCriteria::SORT_ORDERS] = [];
107  }
108  $this->data[SearchCriteria::SORT_ORDERS][] = $sortOrder;
109  return $this;
110  }
111 
118  public function setSortOrders(array $sortOrders)
119  {
120  return $this->_set(SearchCriteria::SORT_ORDERS, $sortOrders);
121  }
122 
129  public function setPageSize($pageSize)
130  {
131  return $this->_set(SearchCriteria::PAGE_SIZE, $pageSize);
132  }
133 
140  public function setCurrentPage($currentPage)
141  {
142  return $this->_set(SearchCriteria::CURRENT_PAGE, $currentPage);
143  }
144 }
$value
Definition: gender.phtml:16
addFilter($field, $value, $conditionType='eq')
__construct(ObjectFactory $objectFactory, FilterGroupBuilder $filterGroupBuilder, FilterBuilder $filterBuilder)