/** * {@inheritdoc} */ public function getOrderBySnippet(FilterDataInterface $filterData) { /** @var SingleChoiceFilterData $filterData */ $value = $filterData->getValue(); $choices = $filterData->getChoices(); if (is_scalar($value) && isset($choices[$value])) { return sprintf('%s %s', $choices[$value]['field'], strtoupper($choices[$value]['order'])); } return null; }
/** * {@inheritdoc} */ public function getWhereSnippet(FilterDataInterface $filterData) { $values = $filterData->getValue(); $clauses = []; $parameters = []; foreach ($values as $value) { $parameter = Container::camelize($this->getConfig()['field'] . '_' . $value); $clauses[] = sprintf("%s = :%s", $this->getConfig()['field'], $parameter); $parameters[$parameter] = $value; } return ['snippet' => '(' . implode(' OR ', $clauses) . ')', 'parameters' => $parameters]; }
/** * {@inheritdoc} */ public function getWhereSnippet(FilterDataInterface $filterData) { $values = explode(',', $filterData->getValue()); $from = $values[0]; $to = isset($values[1]) ? $values[1] : null; $parameters = []; $parameterFrom = Container::camelize($this->getConfig()['field'] . '_from'); $parameterTo = Container::camelize($this->getConfig()['field'] . '_to'); if ($from !== null && $to !== null) { $parameters[$parameterFrom] = $from; $parameters[$parameterTo] = $to; $snippet = sprintf("%s BETWEEN :%s AND :%s", $this->getConfig()['field'], $parameterFrom, $parameterTo); } elseif ($from !== null) { $parameters[$parameterFrom] = $from; $snippet = sprintf("%s >= :%s", $this->getConfig()['field'], $parameterFrom); } else { $parameters[$parameterTo] = $to; $snippet = sprintf("%s <= :%s", $this->getConfig()['field'], $parameterTo); } return ['snippet' => $snippet, 'parameters' => $parameters]; }
/** * {@inheritdoc} */ public function getPager(FilterDataInterface $filterData, $resultsCount) { $page = $filterData->getValue(); $page = $page > 1 ? $page : 1; return new Pager($page, $this->getConfig()['items_per_page'], $resultsCount); }
/** * {@inheritdoc} */ public function getWhereSnippet(FilterDataInterface $filterData) { $parameter = Container::camelize($this->getConfig()['field']); return ['snippet' => sprintf("%s = :%s", $this->getConfig()['field'], $parameter), 'parameters' => [$parameter => $filterData->getValue()]]; }