© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•3y ago•
8 replies
MRBUG

Custom filter forms (From - Until Filter)

i am creating a filter for checking the data from the selected date to until selected date.
And in documentation we have The custom filter It's cool.

but I have another condition the date I want to filter is coming from another relation.

OK my current resource name is Transaction.
so I have a relation named payment and I am showing it's one field in transaction resource named payment_date

so i can make a filter using documentation for transaction created_at column.
like that

use Filament\Forms\Components\DatePicker;
use Filament\Tables\Filters\Filter;
use Illuminate\Database\Eloquent\Builder;
 
Filter::make('created_at')
    ->form([
        DatePicker::make('created_from'),
        DatePicker::make('created_until'),
    ])
    ->query(function (Builder $query, array $data): Builder {
        return $query
            ->when(
                $data['created_from'],
                fn (Builder $query, $date): Builder => $query->whereDate('created_at', '>=', $date),
            )
            ->when(
                $data['created_until'],
                fn (Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date),
            );
    })
use Filament\Forms\Components\DatePicker;
use Filament\Tables\Filters\Filter;
use Illuminate\Database\Eloquent\Builder;
 
Filter::make('created_at')
    ->form([
        DatePicker::make('created_from'),
        DatePicker::make('created_until'),
    ])
    ->query(function (Builder $query, array $data): Builder {
        return $query
            ->when(
                $data['created_from'],
                fn (Builder $query, $date): Builder => $query->whereDate('created_at', '>=', $date),
            )
            ->when(
                $data['created_until'],
                fn (Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date),
            );
    })



but i have a relation named payment and i want to filter its field payment_date in Transaction resource

BTW i used this code
Filter::make('payment_date')
              ->form([
                 DatePicker::make('payment_date_from'),
                 DatePicker::make('payment_date_until'),
               ])
               ->query(function (Builder $query, array $data): Builder {
                    return $query
             ->when(
 $data['payment_date_from'],
 fn (Builder $query, $date): Builder => $query->whereDate('project.payment_date', '>=', $date),)
  ->when(
   $data['payment_date_until'],
   fn (Builder $query, $date): Builder => $query->whereDate('project.payment_date', '<=', $date),);
})
Filter::make('payment_date')
              ->form([
                 DatePicker::make('payment_date_from'),
                 DatePicker::make('payment_date_until'),
               ])
               ->query(function (Builder $query, array $data): Builder {
                    return $query
             ->when(
 $data['payment_date_from'],
 fn (Builder $query, $date): Builder => $query->whereDate('project.payment_date', '>=', $date),)
  ->when(
   $data['payment_date_until'],
   fn (Builder $query, $date): Builder => $query->whereDate('project.payment_date', '<=', $date),);
})

so how can i do that?
THANKS IN ADVANCE.
Solution
👍
Jump to solution
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

Custom Filter
FilamentFFilament / ❓┊help
17mo ago
Custom Filter
FilamentFFilament / ❓┊help
2y ago
Custom Table Filter and Applied filters?
FilamentFFilament / ❓┊help
3y ago
Custom Table Filter
FilamentFFilament / ❓┊help
5mo ago