PartKeepr\DoctrineReflectionBundle\Filter\Filter::getType PHP Method

getType() public method

public getType ( ) : string
return string
    public function getType()
    {
        return $this->type;
    }

Usage Example

 /**
  * Returns the expression for a specific filter.
  *
  * @param QueryBuilder $queryBuilder
  * @param              $filter
  *
  * @throws \Exception
  *
  * @return \Doctrine\ORM\Query\Expr\Comparison|\Doctrine\ORM\Query\Expr\Func
  */
 private function getFilterExpression(QueryBuilder $queryBuilder, Filter $filter)
 {
     if ($filter->hasSubFilters()) {
         $subFilterExpressions = [];
         foreach ($filter->getSubFilters() as $subFilter) {
             /**
              * @var $subFilter Filter
              */
             if ($subFilter->getAssociation() !== null) {
                 $this->addJoins($queryBuilder, $subFilter);
             }
             $subFilterExpressions[] = $this->getFilterExpression($queryBuilder, $subFilter);
         }
         if ($filter->getType() == Filter::TYPE_AND) {
             return call_user_func_array([$queryBuilder->expr(), "andX"], $subFilterExpressions);
         } else {
             return call_user_func_array([$queryBuilder->expr(), "orX"], $subFilterExpressions);
         }
     }
     if ($filter->getAssociation() !== null) {
         $this->addJoins($queryBuilder, $filter);
         $alias = $this->getAlias('o.' . $filter->getAssociation()) . '.' . $filter->getProperty();
     } else {
         $alias = 'o.' . $filter->getProperty();
     }
     if (strtolower($filter->getOperator()) == Filter::OPERATOR_IN) {
         if (!is_array($filter->getValue())) {
             throw new \Exception('Value needs to be an array for the IN operator');
         }
         return $queryBuilder->expr()->in($alias, $filter->getValue());
     } else {
         $paramName = ':param' . $this->parameterCount;
         $this->parameterCount++;
         $queryBuilder->setParameter($paramName, $filter->getValue());
         switch (strtolower($filter->getOperator())) {
             case Filter::OPERATOR_EQUALS:
                 return $queryBuilder->expr()->eq($alias, $paramName);
                 break;
             case Filter::OPERATOR_GREATER_THAN:
                 return $queryBuilder->expr()->gt($alias, $paramName);
                 break;
             case Filter::OPERATOR_GREATER_THAN_EQUALS:
                 return $queryBuilder->expr()->gte($alias, $paramName);
                 break;
             case Filter::OPERATOR_LESS_THAN:
                 return $queryBuilder->expr()->lt($alias, $paramName);
                 break;
             case Filter::OPERATOR_LESS_THAN_EQUALS:
                 return $queryBuilder->expr()->lte($alias, $paramName);
                 break;
             case Filter::OPERATOR_NOT_EQUALS:
                 return $queryBuilder->expr()->neq($alias, $paramName);
                 break;
             case Filter::OPERATOR_LIKE:
                 return $queryBuilder->expr()->like($alias, $paramName);
                 break;
             default:
                 throw new \Exception('Unknown operator ' . $filter->getOperator());
         }
     }
 }