PHP code example of tijanidevit / query-filter
1. Go to this page and download the library: Download tijanidevit/query-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/ */
tijanidevit / query-filter example snippets
$query = User::query();
if (request()->filled('name')) {
$query->where('name', request('name'));
}
if (request()->filled('status')) {
$query->where('status', request('status'));
}
return $query->get();
User::query()
->filterBy([
'name' => request('name'),
'status' => request('status'),
])
->get();
'providers' => [
Tijanidevit\QueryFilter\Providers\FilterProvider::class,
]
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Tijanidevit\QueryFilter\Traits\Filterable;
class User extends Model
{
use Filterable;
}
// Single column matching
User::query()->filterBy('status', 'active')->get();
// Multiple columns exact matching
User::query()->filterBy([
'name' => 'Jane',
'status' => ['active', 'pending'], // Safely wraps to WhereIn natively!
])->get();
// Secure Null checks automatically
User::query()->filterBy([
'email_verified_at' => ['null' => true],
])->get();
Post::query()->filterByRelation([
'author' => [
'status' => 'active',
'is_banned' => false
]
])->get();
// Standard Array
User::query()->filterWhereIn('status', ['active', 'pending'])->get();
// Comma-delimited strings (Ideal for external API requests)
User::query()->filterWhereIn('status', 'active,pending')->get();
// Variadic arguments
User::query()->filterWhereIn('status', 'active', 'pending')->get();
// AND logic across multiple fields
User::query()->search(['name' => 'John', 'city' => 'Lagos'])->get();
// searchIn(): Grouped OR searching across multiple fields using a single keyword constraint
User::query()->searchIn(['first_name', 'last_name', 'email'], 'john')->get();
// orSearch(): Chained top-level grouped OR blocks gracefully appended to pre-existing searches
Article::query()
->search('category', 'technology')
->orSearch(['title', 'summary'], 'laravel')
->get();
User::query()->filterFromRequest(request(), [
'email' => 'login_email', // Translates to: where email = request('login_email')
'department_id' => 'dept',
])->get();
// Filter single explicit matching date period ranges
User::query()->filterByDate('2024-01-01')->get();
// Search date boundaries safely ignoring omitted limits
Order::query()->filterByDateRange(request('date_from'), request('date_to'))->get();
// Isolate month timelines seamlessly
Post::query()->filterByMonth([1, 2])->get();
User::query()
->sortResultBy(request('sort_column'), request('sort_direction'))
->latestBy('last_login')
->get();
$users = User::query()
->filterBy([
'status' => request('status'),
'email_verified_at' => ['null' => request('missing_email_verification')],
])
->filterWhereIn([
'department' => request('departments'), // Array or comma-delimited natively evaluated
])
->filterByRelation([
'manager' => [
'status' => 'active',
],
])
->filterByDateRange(request('from'), request('to'))
->searchIn(['name', 'email', 'biography'], request('search_query'))
->sortResultBy(request('sort_by', 'created_at'), request('sort_dir', 'desc'))
->latestBy('last_login')
->get();