laravel-enso / filters
Search and interval helpers for Laravel Enso
Requires
- php: ^8.0
- laravel-enso/helpers: ^4.0
This package is auto-updated.
Last update: 2026-05-31 08:08:18 UTC
README
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);
Manual intervals require both limits:
use Carbon\Carbon; use LaravelEnso\Filters\Enums\Intervals; use LaravelEnso\Filters\Services\Interval; $interval = new Interval( Intervals::Custom, min: Carbon::parse('2026-05-01 00:00:00'), max: Carbon::parse('2026-05-01 23:59:59'), );
Validation failures are returned as LaravelEnso\Helpers\Exceptions\EnsoException
by default, which keeps UI/API consumers aligned with the standard Enso error
response. Pass ui: false when using the service outside the UI layer and you
need the native LaravelEnso\Filters\Exceptions\Interval exception:
new Interval(Intervals::Custom, ui: false);
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!