add missing type variables for eloquent-builder

This commit is contained in:
Wietse Warendorff
2025-05-22 11:52:18 +02:00
parent 993b8862ac
commit 70dfea3271
8 changed files with 52 additions and 0 deletions
@@ -215,6 +215,12 @@ abstract class Exporter
return $writer;
}
/**
* @template TModel of Model
*
* @param Builder<TModel> $query
* @return Builder<TModel>
*/
public static function modifyQuery(Builder $query): Builder
{
return $query;
@@ -14,6 +14,7 @@ use Filament\Support\Concerns\HasIconPosition;
use Filament\Support\Enums\IconPosition;
use Illuminate\Contracts\Support\Htmlable;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
class Tab extends Component implements CanConcealComponents
@@ -82,6 +83,12 @@ class Tab extends Component implements CanConcealComponents
return $this;
}
/**
* @template TModel of Model
*
* @param Builder<TModel> $query
* @return Builder<TModel>
*/
public function modifyQuery(Builder $query): Builder
{
return $this->evaluate($this->modifyQueryUsing, [
@@ -164,6 +164,12 @@ class SpatieMediaLibraryImageColumn extends ImageColumn
});
}
/**
* @template TModel of Model
*
* @param Builder<TModel>|Relation $query
* @return Builder<TModel>|Relation
*/
public function applyEagerLoading(Builder | Relation $query): Builder | Relation
{
if ($this->isHidden()) {
@@ -86,6 +86,12 @@ class SpatieTagsColumn extends TextColumn
return $this->getType() instanceof AllTagTypes;
}
/**
* @template TModel of Model
*
* @param Builder<TModel>|Relation $query
* @return Builder<TModel>|Relation
*/
public function applyEagerLoading(Builder | Relation $query): Builder | Relation
{
if ($this->isHidden()) {
@@ -32,5 +32,11 @@ interface TranslatableContentDriver
*/
public function updateRecord(Model $record, array $data): Model;
/**
* @template TModel of Model
*
* @param Builder<TModel> $query
* @return Builder<TModel>
*/
public function applySearchConstraintToQuery(Builder $query, string $column, string $search, string $whereClause, ?bool $isSearchForcedCaseInsensitive = null): Builder;
}
@@ -10,6 +10,7 @@ use Filament\Schemas\Schema;
use Filament\Tables\Filters\QueryBuilder\Concerns\HasConstraints;
use Filament\Tables\Filters\QueryBuilder\Forms\Components\RuleBuilder;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Validation\ValidationException;
class QueryBuilder extends BaseFilter
@@ -93,7 +94,11 @@ class QueryBuilder extends BaseFilter
}
/**
* @template TModel of Model
*
* @param Builder<TModel> $query
* @param array<string, mixed> $rules
* @return Builder<TModel>
*/
public function applyRulesToQuery(Builder $query, array $rules, RuleBuilder $ruleBuilder): Builder
{
@@ -131,7 +136,11 @@ class QueryBuilder extends BaseFilter
}
/**
* @template TModel of Model
*
* @param Builder<TModel> $query
* @param array<string, mixed> $rules
* @return Builder<TModel>
*/
public function applyRulesToBaseQuery(Builder $query, array $rules, RuleBuilder $ruleBuilder): Builder
{
@@ -4,6 +4,7 @@ namespace Filament\Tables\Filters\QueryBuilder\Constraints\BooleanConstraint\Ope
use Filament\Tables\Filters\QueryBuilder\Constraints\Operators\Operator;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
class IsTrueOperator extends Operator
{
@@ -31,6 +32,12 @@ class IsTrueOperator extends Operator
);
}
/**
* @template TModel of Model
*
* @param Builder<TModel> $query
* @return Builder<TModel>
*/
public function apply(Builder $query, string $qualifiedColumn): Builder
{
return $query->where($qualifiedColumn, ! $this->isInverse());
@@ -5,6 +5,7 @@ namespace Filament\Tables\Filters;
use Closure;
use Filament\Forms\Components\Select;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Arr;
use Znck\Eloquent\Relations\BelongsToThrough;
@@ -131,7 +132,11 @@ class SelectFilter extends BaseFilter
}
/**
* @template TModel of Model
*
* @param Builder<TModel> $query
* @param array<string, mixed> $data
* @return Builder<TModel>
*/
public function apply(Builder $query, array $data = []): Builder
{