From 1d9d6d2e537b0ee9721383b846356e31943f56ce Mon Sep 17 00:00:00 2001 From: lazerg Date: Sat, 4 Jul 2026 10:41:39 +0500 Subject: [PATCH] Fix global variable references not resolving through the data repository --- src/Providers/AppServiceProvider.php | 1 + tests/Data/Globals/VariablesTest.php | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/Providers/AppServiceProvider.php b/src/Providers/AppServiceProvider.php index 4721714245d..4cdd2a79997 100644 --- a/src/Providers/AppServiceProvider.php +++ b/src/Providers/AppServiceProvider.php @@ -179,6 +179,7 @@ public function register() ->setRepository('collection', \Statamic\Contracts\Entries\CollectionRepository::class) ->setRepository('taxonomy', \Statamic\Contracts\Taxonomies\TaxonomyRepository::class) ->setRepository('global', \Statamic\Contracts\Globals\GlobalRepository::class) + ->setRepository('globals', \Statamic\Contracts\Globals\GlobalVariablesRepository::class) ->setRepository('asset', \Statamic\Contracts\Assets\AssetRepository::class) ->setRepository('user', \Statamic\Contracts\Auth\UserRepository::class); }); diff --git a/tests/Data/Globals/VariablesTest.php b/tests/Data/Globals/VariablesTest.php index 806cada0ad1..2078e6bbf8b 100644 --- a/tests/Data/Globals/VariablesTest.php +++ b/tests/Data/Globals/VariablesTest.php @@ -10,6 +10,7 @@ use PHPUnit\Framework\Attributes\Test; use Statamic\Facades; use Statamic\Facades\Blueprint; +use Statamic\Facades\Data; use Statamic\Facades\GlobalSet; use Statamic\Fields\Fieldtype; use Statamic\Fields\Value; @@ -407,4 +408,17 @@ public function it_clones_internal_collections() $this->assertEquals('A', $variables->getSupplement('bar')); $this->assertEquals('B', $clone->getSupplement('bar')); } + + #[Test] + public function it_can_be_found_via_the_data_repository_using_its_reference() + { + $global = tap(GlobalSet::make('test'))->save(); + $variables = tap($global->inDefaultSite()->data(['foo' => 'bar']))->save(); + + $found = Data::find($variables->reference()); + + $this->assertInstanceOf(Variables::class, $found); + $this->assertEquals($variables->id(), $found->id()); + $this->assertEquals('bar', $found->get('foo')); + } }