filter by relationship created at
How can I filter by relationship created_at column?
My approach, which is not working
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);
}