Recipe: Filters

What / When

Add configureFilters() when users need structured filters (text, choice, date range) on a server-side Doctrine table.

Minimal Example

use Doctrine\ORM\QueryBuilder;
use Pentiminax\UX\DataTables\Filter\ChoiceFilter;
use Pentiminax\UX\DataTables\Filter\TextFilter;
use Pentiminax\UX\DataTables\Model\Filters;

public function configureFilters(Filters $filters): Filters
{
    return $filters
        ->add(TextFilter::new('email')->label('Email'))
        ->add(
            ChoiceFilter::new('status')
                ->label('Status')
                ->options([
                    'Draft' => 'draft',
                    'Published' => 'published',
                ])
        );
}

Pitfalls