behryuz / filter
Simple laravel filter
v1.1
2024-04-03 04:40 UTC
Requires
- illuminate/config: ~6.0|~7.0|~8.0|~9.0|^10|^11
- illuminate/console: ~6.0|~7.0|~8.0|~9.0|^10|^11
- illuminate/database: ~6.0|~7.0|~8.0|~9.0|^10|^11
- illuminate/filesystem: ~6.0|~7.0|~8.0|~9.0|^10|^11
- illuminate/support: ~6.0|~7.0|~8.0|~9.0|^10|^11
This package is auto-updated.
Last update: 2024-06-03 05:08:40 UTC
README
Simple Laravel Filter.
Installation
composer require behryuz/filter
Usage
To create new node-filter run
PS: Node filter is a filter, that you can reuse in every filter you want
php artisan model:filter-node StatusNodeFilter
You are able to skip 'NodeFilter' suffix if you want
<?php namespace App\Filters\Nodes\User; use App\Filters\NodeFilter; use Illuminate\Database\Eloquent\Builder; class StatusNodeFilter implements NodeFilter { public function handle(Builder $query, $input): Builder { return $query->where('status_id', $input); } }
To create new filter run
php artisan model:filter UserFilter
You are able to skip 'Filter' suffix if you want
Add as many filters as you need
<?php namespace App\Filters\Users; class UserFilter extends Filter { protected array $filters = [ 'status_id' => StatusNodeFilter::class ]; }
Add Filter/Filterable
to Models/User
<?php namespace App\Models; class User extends Model { use Filterable; }
Then you can use filter scope method when calling User
model
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\User; class UserController extends Controller { public function index(Request $request) { $users = User::filter(UserFilter::class)->get(); return $users; } }