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;
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * Add filters
  *
  * @param Filter $filters
  * @return View
  */
 public function addFilter(Filter $filters)
 {
     $filters->setView($this);
     $this->filters[] = $filters;
     return $this;
 }