filament/query-builder
Adds a query builder component for Filament, letting users compose filters and conditions through a clean UI. Useful for building advanced search and reporting screens without writing complex query logic by hand.
Use Case Alignment: The filament/query-builder package is designed to enhance Laravel applications built with Filament, a modern admin panel and form builder for Laravel. It provides a declarative way to construct complex database queries within Filament’s UI components (e.g., tables, filters, or forms).
Laravel Ecosystem Synergy:
Table, Filter, Widget).Table, Filter) and requires Filament’s core (filament/filament).where, orderBy).Table or Filter classes).composer.json and monitor Filament’s changelog.orWhere conditions) could degrade performance.->toSql() for debugging) and optimize with database indexes.Request filters) meet requirements?Controller methods, Request filters) to identify candidates for migration.where clauses in Table columns with QueryBuilder filters.use Filament\Tables;
use Filament\QueryBuilder;
Tables\Table::make('Reports')
->columns([
Tables\Columns\TextColumn::make('title'),
])
->filters([
QueryBuilder\Filters\Filter::make('dynamic')
->query(fn (Builder $query) => $query->where('status', 'active'))
->toggleable(),
]);
QueryBuilder for reusable, UI-driven logic.filament/query-builder:^1.0 for Filament 3.x).JSON or ARRAY queries.composer require filament/filament filament/query-builder
Table or Filter classes with QueryBuilder components.Select filter with a QueryBuilder-powered multi-filter.toQuery() output).QueryBuilder to staging for UAT.DB::enableQueryLog()).Filter contract, the package may need adjustments.QueryBuilder\Concerns\ModifiesQuery for app-specific logic.->toQuery() to inspect generated SQL.debug() method for UI issues.->remember() in Laravel).LIKE '%term%' on large tables; use full-text search instead.QueryBuilder scales horizontally with Laravel’s queue system for heavy operations.| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Filament major version update breaks compatibility | Query UI fails to render | Pin Filament version; test updates in staging |
| Unoptimized dynamic queries | Slow responses, timeouts | Add query timeouts; use pagination |
| Incorrect query logic | Wrong data returned | Unit tests for query outputs |
| Database schema changes | Query syntax errors | Migrate schema changes incrementally |
| Third-party package conflicts | Composer install failures | Isolate dependencies with replace in composer.json |
QueryBuilder into a simple resource.QueryBuilder filters.How can I help you explore Laravel packages today?