© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•2d ago•
2 replies
OscarGG

Table filters field validation

Table builder5️⃣v5
I was trying to create a date range filter for my Users resource, but it seems that the fields are not applying the validation rules.
Does anyone know how to apply validations correctly or any tricks to simulate them?

This is my table filter:
Tables\Filters\Filter::make('subscription_end')
    ->schema([
        Fieldset::make(__('Subscription ends'))
            ->columns(2)
            ->schema([
                Forms\Components\DatePicker::make('start')
                    ->label(__('From'))
                    ->requiredWith('end')
                    ->before('end'),
                Forms\Components\DatePicker::make('end')
                    ->label(__('To'))
                    ->requiredWith('start')
                    ->after('start'),
                ]),
           ])
           ->query(function (Builder $query, array $data, Set $set): Builder {
               if (blank($data['start'] ?? null) || blank($data['end'] ?? null)) {
                   return $query;
               }

               return $query->whereBetween('subscription_end', [
                   $data['start'],
                   $data['end'],
               ]);
          })
          ->indicateUsing(function (array $data) {
              if (blank($data['start'] ?? null) || blank($data['end'] ?? null)) {
                  return null;
              }

              return Carbon::parse($data['start'])->format('d-m-Y') . ' - ' . Carbon::parse($data['end'])->format('d-m-Y');
         })
Tables\Filters\Filter::make('subscription_end')
    ->schema([
        Fieldset::make(__('Subscription ends'))
            ->columns(2)
            ->schema([
                Forms\Components\DatePicker::make('start')
                    ->label(__('From'))
                    ->requiredWith('end')
                    ->before('end'),
                Forms\Components\DatePicker::make('end')
                    ->label(__('To'))
                    ->requiredWith('start')
                    ->after('start'),
                ]),
           ])
           ->query(function (Builder $query, array $data, Set $set): Builder {
               if (blank($data['start'] ?? null) || blank($data['end'] ?? null)) {
                   return $query;
               }

               return $query->whereBetween('subscription_end', [
                   $data['start'],
                   $data['end'],
               ]);
          })
          ->indicateUsing(function (array $data) {
              if (blank($data['start'] ?? null) || blank($data['end'] ?? null)) {
                  return null;
              }

              return Carbon::parse($data['start'])->format('d-m-Y') . ' - ' . Carbon::parse($data['end'])->format('d-m-Y');
         })


Thanks in advance.
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Table filters result
FilamentFFilament / ❓┊help
10mo ago
Table filters Help
FilamentFFilament / ❓┊help
13mo ago
Table Select Filters
FilamentFFilament / ❓┊help
13mo ago
Filament Table Filters
FilamentFFilament / ❓┊help
2y ago