Filtering parameters are not detailed in the specification however a keyword 'filter' is reserved for filtering.
This method returns key and value pairs from input 'filter' parameter.
public getFilteringParameters ( ) : array | null | ||
Résultat | array | null |
/** * @param ErrorCollection $errors * @param EncodingParametersInterface $parameters * * @return array */ public function mapParameters(ErrorCollection $errors, EncodingParametersInterface $parameters) { $filters = $this->mapFilterParameters($errors, $parameters->getFilteringParameters()); $sorts = $this->mapSortParameters($errors, $parameters->getSortParameters()); $includes = $this->mapIncludeParameters($errors, $parameters->getIncludePaths()); $paging = $parameters->getPaginationParameters(); return [$filters, $sorts, $includes, $paging]; }
/** * @inheritdoc */ public function search(Builder $builder, EncodingParametersInterface $parameters) { $filters = new Collection((array) $parameters->getFilteringParameters()); if ($this->isFindMany($filters)) { return $this->findMany($builder, $filters); } $this->filter($builder, $filters); $this->sort($builder, (array) $parameters->getSortParameters()); if ($this->isSearchOne($filters)) { return $this->first($builder); } return $this->isPaginated() ? $this->paginate($builder) : $this->all($builder); }
/** * @param ErrorCollection $errors * @param EncodingParametersInterface $parameters */ protected function checkFiltering(ErrorCollection $errors, EncodingParametersInterface $parameters) { $withinAllowed = $this->keysWithinAllowed($parameters->getFilteringParameters(), $this->filteringParameters); $withinAllowed === true ?: $errors->addQueryParameterError(QP::PARAM_FILTER, T::t('Filter should contain only allowed values.')); }
/** * @param FilterValidatorInterface $validator * @param EncodingParametersInterface $parameters * @throws JsonApiException */ private function checkFilterParameters(FilterValidatorInterface $validator, EncodingParametersInterface $parameters) { if (!$validator->isValid((array) $parameters->getFilteringParameters())) { throw new ValidationException($validator->getErrors()); } }