You are here

public static function Filter::createFromQueryParameter in JSON:API 8.2

Creates a Sort object from a query parameter.

Parameters

mixed $parameter: The `filter` query parameter from the Symfony request object.

\Drupal\jsonapi\ResourceType\ResourceType $resource_type: The JSON:API resource type.

\Drupal\jsonapi\Context\FieldResolver $field_resolver: The JSON:API field resolver.

Return value

self A Sort object with defaults.

10 calls to Filter::createFromQueryParameter()
EntityResource::getJsonApiParams in src/Controller/EntityResource.php
Extracts JSON:API query parameters from the request.
FilterTest::testCreateFromQueryParameter in tests/src/Kernel/Query/FilterTest.php
@covers ::createFromQueryParameter @dataProvider parameterProvider
FilterTest::testCreateFromQueryParameterNested in tests/src/Kernel/Query/FilterTest.php
@covers ::createFromQueryParameter
FilterTest::testInvalidFilterPathDueMissingMetaPrefixReferenceFieldWithMetaProperties in tests/src/Kernel/Query/FilterTest.php
@covers ::queryCondition
FilterTest::testInvalidFilterPathDueToElidedSoleProperty in tests/src/Kernel/Query/FilterTest.php
@covers ::queryCondition

... See full list

File

src/Query/Filter.php, line 155

Class

Filter
Gathers information about the filter parameter.

Namespace

Drupal\jsonapi\Query

Code

public static function createFromQueryParameter($parameter, ResourceType $resource_type, FieldResolver $field_resolver) {
  $expanded = static::expand($parameter);
  foreach ($expanded as &$filter_item) {
    if (isset($filter_item[static::CONDITION_KEY][EntityCondition::PATH_KEY])) {
      $unresolved = $filter_item[static::CONDITION_KEY][EntityCondition::PATH_KEY];
      $filter_item[static::CONDITION_KEY][EntityCondition::PATH_KEY] = $field_resolver
        ->resolveInternalEntityQueryPath($resource_type
        ->getEntityTypeId(), $resource_type
        ->getBundle(), $unresolved);
    }
  }
  return new static(static::buildEntityConditionGroup($expanded));
}