/** * @param FilterDatasourceAdapterInterface $ds * @param string $fieldName * @param mixed $valueStart * @param mixed $valueEnd * @return string */ protected function buildNotBetweenExpr(FilterDatasourceAdapterInterface $ds, $fieldName, $valueStart, $valueEnd) { $parameterStart = $ds->generateParameterName($this->getName()); $parameterEnd = $ds->generateParameterName($this->getName()); if ($valueStart && $valueEnd) { $ds->setParameter($parameterStart, $valueStart); $ds->setParameter($parameterEnd, $valueEnd); return $ds->expr()->orX($ds->expr()->lt($fieldName, $parameterStart, true), $ds->expr()->gt($fieldName, $parameterEnd, true)); } elseif ($valueStart) { $ds->setParameter($parameterStart, $valueStart); return $ds->expr()->lt($fieldName, $parameterStart, true); } else { $ds->setParameter($parameterEnd, $valueEnd); return $ds->expr()->gt($fieldName, $parameterEnd, true); } }