From 1ab95854b301e1a69ece95d164795f320545567e Mon Sep 17 00:00:00 2001 From: Ryan Mitchell Date: Mon, 2 Dec 2024 20:00:39 +0000 Subject: [PATCH] Assets and terms --- src/Fieldtypes/Assets/Assets.php | 15 ++++++++++----- src/Fieldtypes/Terms.php | 5 +++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/Fieldtypes/Assets/Assets.php b/src/Fieldtypes/Assets/Assets.php index a58efcfea8..3ea8982746 100644 --- a/src/Fieldtypes/Assets/Assets.php +++ b/src/Fieldtypes/Assets/Assets.php @@ -17,6 +17,7 @@ use Statamic\Fields\Fieldtype; use Statamic\GraphQL\Types\AssetInterface; use Statamic\Http\Resources\CP\Assets\Asset as AssetResource; +use Statamic\Query\EmptyQueryBuilder; use Statamic\Query\Scopes\Filter; use Statamic\Support\Arr; use Statamic\Support\Str; @@ -257,13 +258,17 @@ public function augment($values) return Blink::get($key); } - $ids = collect($values) - ->map(fn ($value) => $this->container()->handle().'::'.$value) - ->all(); + if (! $values) { + $query = new EmptyQueryBuilder(); + } else { + $ids = collect($values) + ->map(fn ($value) => $this->container()->handle().'::'.$value) + ->all(); - $query = $this->container()->queryAssets()->whereIn('path', $values); + $query = $this->container()->queryAssets()->whereIn('path', $values); - $query = new OrderedQueryBuilder($query, $ids); + $query = new OrderedQueryBuilder($query, $ids); + } return $single && ! config('statamic.system.always_augment_to_query', false) ? Blink::once($key, fn () => $query->first()) diff --git a/src/Fieldtypes/Terms.php b/src/Fieldtypes/Terms.php index c3b7dd1bd0..63b0dc5cbc 100644 --- a/src/Fieldtypes/Terms.php +++ b/src/Fieldtypes/Terms.php @@ -20,6 +20,7 @@ use Statamic\Facades\User; use Statamic\GraphQL\Types\TermInterface; use Statamic\Http\Resources\CP\Taxonomies\TermsFieldtypeTerms as TermsResource; +use Statamic\Query\EmptyQueryBuilder; use Statamic\Query\OrderedQueryBuilder; use Statamic\Query\Scopes\Filter; use Statamic\Query\Scopes\Filters\Fields\Terms as TermsFilter; @@ -130,6 +131,10 @@ public function augment($values) private function queryBuilder($values) { + if (! $values) { + return new EmptyQueryBuilder(); + } + // The parent is the item this terms fieldtype exists on. Most commonly an // entry, but could also be something else, like another taxonomy term. $parent = $this->field->parent();