Filters
Description
Filters provides reusable search and date-interval helpers for Laravel Enso and standalone Laravel code.
The package includes a query search helper that supports multiple search modes and relation-aware matching, plus an interval iterator that builds hourly, daily, monthly, or yearly segments across predefined or custom ranges.
It has no routes or migrations. It is a pure helper package.
Installation
Install the package:
composer require laravel-enso/filters
Features
- Full-text, exact-match, starts-with, ends-with, and negated search modes.
- Support for custom comparison operators.
- Search across direct attributes and related attributes.
- Interval generation for today, week, month, year, custom, and all-time ranges.
- Time-segment labels suitable for charts and aggregate dashboards.
Usage
Search a query:
use LaravelEnso\Filters\Services\Search;
$query = new Search(User::query(), ['name', 'email'], 'john');
$results = $query->handle();
Build an interval:
use LaravelEnso\Filters\Enums\Intervals;
use LaravelEnso\Filters\Services\Interval;
$interval = new Interval(Intervals::ThisMonth);
API
Services
LaravelEnso\\Filters\\Services\\SearchLaravelEnso\\Filters\\Services\\Interval
Enums
ComparisonOperatorsSearchModesIntervalsTimeSegmentsOperationsAdjustments
Depends On
Required Enso packages:
Companion frontend package:
Contributions
are welcome. Pull requests are great, but issues are good too.
Thank you to all the people who already contributed to Enso!