abbasudo/laravel-purity
Laravel Purity adds elegant filtering and sorting to Eloquent queries via a simple filter() method. Let frontend users drive complex query conditions using URL query string parameters (e.g., filters[title][$contains]=Purity), with minimal boilerplate.
Filterable, Sortable) to models and call filter()/sort() in controllers.?filters[title][$contains]=...) or libraries like qs for JavaScript clients.purity.php).$filterFields restructuring in v3) may require migration effort.user.posts.tags.name)? Are there limits to relation depth?$in for array fields) without extending the package??page=1&filters[...])?spatie/laravel-query-builder, archtechx/boom) for our use case?qs library), or frameworks like Next.js/Nuxt.Post) to test basic filters/sorts.filter()/sort() calls.filters[title][$contains]).$filters and sync with the backend.title, created_at).author.name, tags.slug).spatie/laravel-query-builder). Use composer’s replace or alias traits to avoid collisions.$like) may behave differently across databases (e.g., PostgreSQL’s ILIKE vs. MySQL’s LIKE).order, group) in field names.composer require abbasudo/laravel-purity.php artisan vendor:publish --tag=purity.silent mode and allowed fields in config/purity.php.use Filterable; use Sortable; to target models.$filterFields and $sortFields if restricting fields.return Post::filter()->sort()->paginate(10);
filters[title][$contains]).$filters and use wire:model.live.silent is disabled).purity.php) allows easy adjustments without code changes.filters[field][operator]).$eq but backend expects $equals.$contains vs. $eqc for case-sensitive matches.$filterFields in related models.with() for eager loading in relation filters.Post::filter(['status' => 'published'])->get()).filters[user.id][$in] with 1M users).| Failure Scenario | Impact | Mitigation |
|---|---|---|
| Invalid filter operator | Silent failure (default) or 500 error | Enable silent: false in config + logging. |
| Missing relation in filter | Query fails or returns empty data | Validate relations in $filterFields. |
| N+1 queries from relation |
How can I help you explore Laravel packages today?