Skip to content

Commit bbecb7c

Browse files
committed
fix(graphql): HasOneThrough sorting fix (Laravel v11.15.0 compatibility).
(cherry picked from commit 2fa609f)
1 parent ff8650a commit bbecb7c

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

packages/graphql/src/SortBy/Sorters/EloquentSorter.php

+8-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
99
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
1010
use Illuminate\Database\Eloquent\Relations\HasOneOrMany;
11+
use Illuminate\Database\Eloquent\Relations\HasOneOrManyThrough;
1112
use Illuminate\Database\Eloquent\Relations\MorphOneOrMany;
1213
use Illuminate\Database\Eloquent\Relations\Relation;
1314
use Illuminate\Database\Query\JoinClause;
@@ -19,6 +20,7 @@
1920
use Override;
2021

2122
use function array_shift;
23+
use function class_exists;
2224

2325
/**
2426
* @extends DatabaseSorter<EloquentBuilder<Model>>
@@ -157,7 +159,12 @@ static function (JoinClause $join) use ($relation, $currentAlias, $parentAlias):
157159
? "{$parentAlias}.{$relation->getLocalKeyName()}"
158160
: $relation->getQualifiedParentKeyName(),
159161
);
160-
} elseif ($relation instanceof HasManyThrough) {
162+
} elseif (
163+
$relation instanceof HasManyThrough
164+
|| ( // Since Laravel v11.15.0
165+
class_exists(HasOneOrManyThrough::class) && $relation instanceof HasOneOrManyThrough
166+
)
167+
) {
161168
$builder->joinSub(
162169
$relation->getQuery()->select([
163170
"{$relation->getParent()->getQualifiedKeyName()} as {$currentAlias}_key",

0 commit comments

Comments
 (0)