Isswp101\Persimmon\QueryBuilder\QueryBuilder::filter PHP Метод

filter() публичный Метод

public filter ( Filter | array $filter = [], string $mode = Filter::MODE_INCLUDE )
$filter Isswp101\Persimmon\QueryBuilder\Filters\Filter | array
$mode string
    public function filter($filter = [], $mode = Filter::MODE_INCLUDE)
    {
        if (!$filter) {
            unset($this->query['body']['filter']);
            return $this;
        }
        if ($filter instanceof Filter) {
            $filter = $filter->makeQuery();
        }
        $map = [Filter::MODE_INCLUDE => 'must', Filter::MODE_EXCLUDE => 'must_not', 'should' => 'should'];
        $mode = $map[$mode];
        $this->merge($filter, $mode);
        return $this;
    }

Usage Example

 /**
  * Find all children.
  *
  * @return ElasticsearchCollection|ElasticsearchModel[]
  */
 public function get()
 {
     $child = $this->childClassName;
     $query = new QueryBuilder();
     $query->filter(new ParentFilter($this->parent->getId()));
     $collection = $child::search($query);
     $collection->each(function (ElasticsearchModel $model) {
         $model->setParent($this->parent);
     });
     return $collection;
 }