private function getAdditionalFilters($filters = '') { $additionalFilters = []; if ($filters) { $allowedOperations = [Filter::FILTER_GREATER_THAN_OR_EQUALS, Filter::FILTER_GREATER_THAN, Filter::FILTER_LESS_THAN_OR_EQUALS, Filter::FILTER_LESS_THAN, Filter::FILTER_NOT_EQUALS, Filter::FILTER_EQUALS]; //order of elements is important $statements = explode(' and ', strtolower($filters)); foreach ($statements as $statement) { foreach ($allowedOperations as $operation) { if (strpos($statement, $operation) !== FALSE) { $statementParts = explode($operation, $statement); $filter = new Filter(); $filter->setCol(trim($statementParts[0])); $filter->setType($operation); $filter->setValue(trim($statementParts[1])); $additionalFilters[] = $filter; } } } } return $additionalFilters; }
/** * Add filters * * @param \AppShed\Extensions\StorageBundle\Entity\Filter $filter * @return Api */ public function addFilter(\AppShed\Extensions\StorageBundle\Entity\Filter $filter) { $filter->setApi($this); $this->filters[] = $filter; return $this; }
/** * Add filters * * @param Filter $filters * @return View */ public function addFilter(Filter $filters) { $filters->setView($this); $this->filters[] = $filters; return $this; }