PHP code example of bakhadyrovf / easy-filter

1. Go to this page and download the library: Download bakhadyrovf/easy-filter library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

bakhadyrovf / easy-filter example snippets




return [

    /**
     * Base folder's name in app directory.
     * Default: Filters
     */
    'base-folder' => 'Filters'

];

 

namespace App\Filters\ArticleFilter;

use Bakhadyrovf\EasyFilter\QueryFilter;

class ArticleFilter extends QueryFilter
{
    
}



namespace App\Models\Admin;

use Bakhadyrovf\EasyFilter\Traits\Filterable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use App\Filters\Dashboard\ArticleFilter;

class Discount extends Model
{
    use HasFactory, Filterable;
    
    public function provideFilter()
    {
        return ArticleFilter::class;
    }
}

class ArticleFilter extends QueryFilter
{
    public function title(Builder $builder, $value)
    {
        return $builder->where('title', 'LIKE', $value . '%');           
    }
}

use App\Models\Article;
use Illuminate\Http\Request;

class ArticleController extends Controller
{
    public function index(Request $request)
    {
        $articles = Article::filter()
            ->orderByDesc('id')
            ->get();
            
        return $articles;
    }
}

Class ArticleFilter extends QueryFilter 
{
    public function firstName(Builder $builder, $value)
    {
        return $builder->where('first_name', 'LIKE', $value . '%');
    }
}

Class ArticleFilter extends QueryFilter 
{
    public function categoryIds(Builder $builder, $values)
    {
        return $builder->whereHas('categories', function ($query) use ($values) {
            return $query->whereIn('id', $values);
        });
    }
}

use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index(Request $request)
    {
        $users = User::active()
            ->filter(['postIds']) // Or post_ids
            ->orderByDesc('created_at')
            ->get();
            
        return $users;
    }
}

use App\Models\Post;
use App\Filters\Dashboard\PostFilter;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function index(Request $request)
    {
        $posts = Post::active()
            ->filter(['sort_by'], PostFilter::class)  
            ->orderByDesc('created_at')
            ->get();
            
        return $posts;
    }
}

php artisan make:filter Dashboard/ArticleFilter