PHP code example of curvestech / laravel-request-filters

1. Go to this page and download the library: Download curvestech/laravel-request-filters 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/ */

    

curvestech / laravel-request-filters example snippets




namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Curvestech\LaravelRequestFilters\Traits\Filterable;

class User extends Model
{
    use Filterable;
}



namespace App\Http\Controllers;

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

class UserController extends Controller
{
    public function index(UserFilter $filter)
    {
        $users = User::filter($filter)->get();
        
        return response()->json($users);
    }
}



namespace App\Http\Filters;

use Curvestech\LaravelRequestFilters\AbstractFilter;
use Illuminate\Database\Eloquent\Builder;

class UserFilter extends AbstractFilter
{
    // URL: ?name=john
    public function name(Builder $builder, $value): Builder
    {
        return $builder->where('name', 'like', '%' . $value . '%');
    }

    // URL: ?status=active
    public function status(Builder $builder, $value): Builder
    {
        return $builder->where('status', $value);
    }

    // URL: ?created_from=2023-01-01
    public function createdFrom(Builder $builder, $value): Builder
    {
        return $builder->where('created_at', '>=', $value);
    }
}

GET /users?name=john&status=active

GET /users?created_from=2023-01-01&created_to=2023-12-31