PHP code example of pricecurrent / laravel-eloquent-filters
1. Go to this page and download the library: Download pricecurrent/laravel-eloquent-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/ */
pricecurrent / laravel-eloquent-filters example snippets
use App\Filters\NameFilter;
use Pricecurrent\LaravelEloquentFilters\EloquentFilters;
class ProductsController
{
public function index(Request $request)
{
$filters = EloquentFilters::make([new NameFilter($request->name)]);
$products = Product::filter($filters)->get();
}
}
use Pricecurrent\LaravelEloquentFilters\AbstractEloquentFilter;
use Illuminate\Database\Eloquent\Builder;
class NameFilter extends AbstractEloquentFilter
{
protected $name;
public function __construct($name)
{
$this->name = $name;
}
public function apply(Builder $query): Builder
{
return $query->where('name', 'like', "{$this->name}%");
}
}
use App\Filters\NameFilter;
use App\Models\User;
use Pricecurrent\LaravelEloquentFilters\EloquentFilters;
class UsersController
{
public function index(Request $request)
{
$filters = EloquentFilters::make([new NameFilter($request->user_name)]);
$products = User::filter($filters)->get();
}
}
use App\Filters\NameFilter;
use App\Models\User;
use Pricecurrent\LaravelEloquentFilters\EloquentFilters;
class UsersController
{
public function index(Request $request)
{
$filters = EloquentFilters::make([new NameFilter($request->user_name)]);
$products = User::query()
->filter($filters)
->limit(10)
->latest()
->get();
}
}
use Pricecurrent\LaravelEloquentFilters\Filterable;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use Filterable;
}
class StoreWithinDistanceFilter extends AbstractEloquentFilter
{
public function __construct($distance, Coordinates $fromCoordinates)
{
$this->distance = $distance;
$this->fromCoordinates = $fromCoordinates;
}
public function isApplicable(): bool
{
return $this->distance && is_numeric($this->distance);
}
public function apply(Builder $query): Builder
{
// your code
}
}
class ProductsController
{
public function index(IndexProductsRequest $request)
{
$products = Product::filter(FiltersFactory::fromIndexProductsRequest($request))->get();
return response()->json(['data' => $products]);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.