handle string filter (?filter=)
This commit is contained in:
parent
5f7c0d2da5
commit
de4dacd1da
|
|
@ -62,10 +62,6 @@ class Index
|
|||
}
|
||||
|
||||
if ($filter = $context->getRequest()->getQueryParams()['filter'] ?? null) {
|
||||
if (! is_array($filter)) {
|
||||
throw (new BadRequestException('filter must be an array'))->setSourceParameter('filter');
|
||||
}
|
||||
|
||||
$resourceType->applyFilters($query, $filter, $context);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,12 +110,17 @@ final class ResourceType
|
|||
/**
|
||||
* Apply the resource type's filters to a query.
|
||||
*/
|
||||
public function applyFilters($query, array $filters, Context $context): void
|
||||
public function applyFilters($query, $filters, Context $context): void
|
||||
{
|
||||
$schema = $this->getSchema();
|
||||
$customFilters = $schema->getFilters();
|
||||
$fields = $schema->getFields();
|
||||
|
||||
if (is_string($filters)) {
|
||||
$this->adapter->filterByExpression($query, $filters);
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($filters as $name => $value) {
|
||||
if ($name === 'id') {
|
||||
$this->adapter->filterByIds($query, explode(',', $value));
|
||||
|
|
|
|||
Loading…
Reference in New Issue