© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•3y ago•
13 replies
Vp

filter by relationship created at

How can I filter by relationship created_at column?
My approach, which is not working
public function table(Table $table): Table
{
    return $table
        ->query(Post::query()->with('tags'))
        ->columns([
            TextColumn::make('title'),
            TextColumn::make('tags.created_at')->date(),
            TextColumn::make('created_at'),
        ])
        ->filters([
            Filter::make('search')
                ->form([
                    DatePicker::make('tagDate')
                        ->label('Tag Created'),
                ])
                ->query(function (Builder $query, array $data): Builder {
                    return $query
                        ->when(
                            $data['tagDate'],
                            fn (Builder $query, $date): Builder => $query->with([
                                'tags', fn ($q, $date) => $q->whereDate('created_at', $date),
                            ]),
                        );
                }),
        ], layout: FiltersLayout::AboveContent);
}
public function table(Table $table): Table
{
    return $table
        ->query(Post::query()->with('tags'))
        ->columns([
            TextColumn::make('title'),
            TextColumn::make('tags.created_at')->date(),
            TextColumn::make('created_at'),
        ])
        ->filters([
            Filter::make('search')
                ->form([
                    DatePicker::make('tagDate')
                        ->label('Tag Created'),
                ])
                ->query(function (Builder $query, array $data): Builder {
                    return $query
                        ->when(
                            $data['tagDate'],
                            fn (Builder $query, $date): Builder => $query->with([
                                'tags', fn ($q, $date) => $q->whereDate('created_at', $date),
                            ]),
                        );
                }),
        ], layout: FiltersLayout::AboveContent);
}
Solution
Oh, I can use
whereHas()
whereHas()
..
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

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Filter by multiple Relationship attributes
FilamentFFilament / ❓┊help
3y ago
How to filter Filament table by nested relationship?
FilamentFFilament / ❓┊help
3y ago
Select Filter with Group By from Column not Relationship
FilamentFFilament / ❓┊help
2y ago