Skip to content

Commit c3a7637

Browse files
committed
Enhance QueryBuilder with generics support for better type inference
1 parent e01179f commit c3a7637

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/QueryBuilder.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
use Spatie\QueryBuilder\Concerns\SortsQuery;
1515

1616
/**
17-
* @mixin EloquentBuilder
17+
* @template TModel of Model
18+
* @mixin EloquentBuilder<TModel>
1819
*/
1920
class QueryBuilder implements ArrayAccess
2021
{
@@ -49,6 +50,9 @@ public function getSubject(): Relation|EloquentBuilder
4950
return $this->subject;
5051
}
5152

53+
/**
54+
* @return static<TModel>
55+
*/
5256
public static function for(
5357
EloquentBuilder|Relation|string $subject,
5458
?Request $request = null
@@ -57,7 +61,10 @@ public static function for(
5761
$subject = $subject::query();
5862
}
5963

60-
return new static($subject, $request);
64+
/** @var static<TModel> $queryBuilder */
65+
$queryBuilder = new static($subject, $request);
66+
67+
return $queryBuilder;
6168
}
6269

6370
public function __call($name, $arguments)

0 commit comments

Comments
 (0)