1. Go to this page and download the library: Download laravelway/query-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/ */
laravelway / query-filters example snippets
use LaravelWay\QueryFilters\Traits\QueryFilters;
class User extends Model
{
use QueryFilters;
}
use LaravelWay\QueryFilters\Filters\EqualFilter;
use LaravelWay\QueryFilters\Filters\ContainsFilter;
User::query()
->addQueryFilters(filters: [
'name' => EqualFilter::class,
'email' => ContainsFilter::class
]);
use LaravelWay\QueryFilters\Filters\EqualFilter;
use LaravelWay\QueryFilters\Filters\ContainsFilter;
User::query()
->addQueryFilters(filters: [
'name' => EqualFilter::class,
])
->addQueryFilters(filters: [
'email' => ContainsFilter::class,
]);
use LaravelWay\QueryFilters\Filters\EqualFilter;
use LaravelWay\QueryFilters\Filters\ContainsFilter;
class UserFilters extends FiltersAbstract
{
/** @var array<string, class-string|callable|array{0: class-string, 1: mixed}> */
public array $filters = [
'name' => EqualFilter::class,
'email' => ContainsFilter::class,
];
/**
* @param Builder<Model> $builder
*/
public function filterSearch(Builder $builder, string $key, mixed $value, mixed $params = null): void {
$builder->whereLike('name', "%$value%")->whereLike('email', "%$value%");
}
}
// and then you can use this class for filtering
User::query()->addQueryFilters(filters: UserFilters::class);
public array $filters = [
'name' => EqualFilter::class,
];
// ?name=John - it will search all rows which are equals to John.
// it can be case-insensitive if table column's collation ends with _ci suffix.
public array $filters = [
'name' => ContainsFilter::class,
];
// ?name=John - it will search all rows which are contains John string.
// it can be case-insensitive if table column's collation ends with _ci suffix.
public array $filters = [
'search' => [ContainsInFilter::class, ['name', 'email', 'role']],
];
// ?search=John - it will search all rows which are contains John string in name, email or role columns.
// it can be case-insensitive if table column's collation ends with _ci suffix.
public array $filters = [
'name' => LikeFilter::class,
];
// ?name=John* - it will search all rows which are starting with John
// ?name=*John - it will search all rows which are ending with John
// it can be case-insensitive if table column's collation ends with _ci suffix.
public array $filters = [
'trashed' => TrashedFilter::class,
];
// ?trashed=with - it will search all rows even soft deleted rows
// ?trashed=only - it will search only soft deleted rows
public array $filters = [
'trashed' => TrashedFilter::class,
];
// ?created_at=2024-03-01 - it will filter all rows which are created exactly at selected date
// ?created_at=2024-03-01, - it will filter all rows where created_at field more or equal to selected date
// ?created_at=,2024-03-01 - it will filter all rows where created_at field less or equal to selected date
// ?created_at=2024-03-01,2024-03-16 - it will filter all rows where created_at field is between two selected dates including both dates
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.