Download the PHP package esign/laravel-query-filters without Composer
On this page you can find all versions of the php package esign/laravel-query-filters. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download esign/laravel-query-filters
More information about esign/laravel-query-filters
Files in esign/laravel-query-filters
Package laravel-query-filters
Short Description Apply filters to Laravel's query builder.
License MIT
Homepage https://github.com/esign/laravel-query-filters
Informations about the package laravel-query-filters
Apply filters to Laravel's query builder.
This package allows you to easily apply filters to Laravel's query builder by abstracting filter logic into dedicated classes.
Installation
You can install the package via composer:
The package will automatically register a service provider.
Usage
Preparing your model
To apply filters to your model you may use the Esign\QueryFilters\Concerns\Filterable
trait:
Applying filters
After applying the trait to your model, a query scope filter
will be available, that accepts an array of possible filters:
The filter
scope will send the query builder through an array of filters.
To pass the query builder to the next filter, you should call the $next
callback with the $query
.
You're not limited to only using string based classes as filters, you can pass actual instances, callbacks, or pass parameters along with your class based string:
Defining default filters
In case you do not provide an array of filter items, you may define a set of default filters on your model:
You may now call the filter
scope without passing an array:
Creating filters
To create a filter class you may use the make:filter
Artisan command:
Method filters
This package also ships with a handy MethodFilter
class that allows you to define filters for query string parameters as methods.
Imagine we have a request that filters a list of posts with the following query string: ?published_at=2022-01-01&title=dogs
.
We could create a PostFilter
that extends the MethodFilter
class with the camelcased method names:
By default, query string parameters that contain an empty value won't be called.
Testing
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-query-filters with dependencies
illuminate/console Version ^10.0|^11.0|^12.0
illuminate/database Version ^10.0|^11.0|^12.0
illuminate/pipeline Version ^10.0|^11.0|^12.0
illuminate/support Version ^10.0|^11.0|^12.0