mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-24 15:42:09 +08:00
Merge pull request #16317 from wietsewarendorff/feature/add-eloquent-builder-generics
add missing type variables for eloquent-builder
This commit is contained in:
@@ -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, [
|
||||
|
||||
+6
@@ -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
|
||||
{
|
||||
|
||||
+7
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user