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
8 
12 
20 {
24  protected $sortOrderBuilder;
25 
30 
34  private $filters = [];
35 
41  public function __construct(
45  ) {
46  parent::__construct($objectFactory);
47  $this->sortOrderBuilder = $sortOrderBuilder;
48  $this->filterGroupBuilder = $filterGroupBuilder;
49  }
50 
56  public function create()
57  {
58  foreach ($this->filters as $filter) {
59  $this->data[SearchCriteria::FILTER_GROUPS][] = $this->filterGroupBuilder->setFilters([])
60  ->addFilter($filter)
61  ->create();
62  }
63  $this->data[SearchCriteria::SORT_ORDERS] = [$this->sortOrderBuilder->create()];
64  return parent::create();
65  }
66 
73  public function addFilter(\Magento\Framework\Api\Filter $filter)
74  {
75  $this->filters[] = $filter;
76  return $this;
77  }
78 
84  public function addSortOrder($field, $direction)
85  {
86  $this->sortOrderBuilder->setDirection($direction)
87  ->setField($field);
88  return $this;
89  }
90 
97  public function setPageSize($pageSize)
98  {
99  return $this->_set(SearchCriteria::PAGE_SIZE, $pageSize);
100  }
101 
108  public function setCurrentPage($currentPage)
109  {
110  return $this->_set(SearchCriteria::CURRENT_PAGE, $currentPage);
111  }
112 }
addFilter(\Magento\Framework\Api\Filter $filter)
__construct(ObjectFactory $objectFactory, FilterGroupBuilder $filterGroupBuilder, SortOrderBuilder $sortOrderBuilder)