Download the PHP package netsells/eloquent-filters without Composer
On this page you can find all versions of the php package netsells/eloquent-filters. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package eloquent-filters
Eloquent Filters
Eloquent Filters provides you with the scaffolding to easily organise and add filters to your eloquent models. The primary purpose of this package is to help keep both models and controllers clean by helping you to extract search / filter logic into well defined, dedicated classes.
It is created and maintained by the Netsells team
Key Features
- Setup is extremely easy. Publish a config file then apply a trait to your models and you're done.
- Gives you an alternative to filling your models full scopes or controllers full of query logic.
- Provides the foundation for greater reuse of filter logic across different models.
Installation
using composer:
Then publish the config file using the following artisan command:
Usage
Basic Usage
Once you have published the config add the Netsells\EloquentFilters\Traits\HasFilters
trait to any models that you wish to add filters to.
Next create a filter class that implements Netsells\EloquentFilters\Interfaces\FilterInterface;
.
Registering Filters
There are two ways to register a filter. Firstly via the filters
array in the eloquent-filters.php
config file as below:
or by applying the Netsells\EloquentFilters\Attributes\FiltersModel
attribute to the filter class.
The attribute takes two arguments, these are the model class and the query parameters that the filter is to be bound to.
You may specify the directory in which to look for filters by setting the filter_directory
value in the eloquent-filters.php
config file. By defualt the entire app/
directory will be scanned.
Note - the query parameter is independent of the database column being queried.
Finally, apply the filter as follows.
You may pass any iterable
to the applyFilters()
method. So all of the below are also valid: