There is 2 way to do this. first using filter method and pass an array to it. Second is to use macro methods
Consider we have SearchFilter and StatusFilter for the User model :
<?php
namespace App\Filters\User;
use EleFilter\Database\ModelFilter
class SearchFilter extends ModelFilter
{
public function apply($search)
{
# Implementation
}
}
<?php
namespace App\Filters\User;
use EleFilter\Database\ModelFilter
class StatusFilter extends ModelFilter
{
public function active()
{
# Implementation
}
public function deactive()
{
# Implementation
}
}
1.Using filter method :
Calling filter method on the model and pass an arguemtn as array that contains the class filter as key, filter method or parameter as value. The array can be set manualy or comes from html form.
$users = User::filter([
'status' => 'active' ,
'search' => 'elefilter' ,
])->get();
# or get array from request
$users = User::filter($request->all());
2.Using clean methods :
Alternativly you can apply the filter using clean code. This way you code will be more clean and readable
$users = User::active()->get();
$users = User::search('elefilter')->get();
For next step lets implement filter class methods
© 2025 elefilter