adesin-fr/laravel-query-builder-table-filters

Advanced Spatie Laravel Query Builder filters for Vue query builder tables.

Maintainers

Package info

github.com/Adesin-fr/laravel-query-builder-table-filters

pkg:composer/adesin-fr/laravel-query-builder-table-filters

Transparency log

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

2026.33.1 2026-08-10 07:24 UTC

This package is not auto-updated.

Last update: 2026-08-10 10:47:18 UTC


README

Small Laravel package containing only Spatie Query Builder helpers required by the Vue table package.

It has no Inertia dependency and does not render frontend configuration.

Install

composer require adesin-fr/laravel-query-builder-table-filters

Filters

use AdesinFr\LaravelQueryBuilderTableFilters\AllowedDateFilter;
use AdesinFr\LaravelQueryBuilderTableFilters\AllowedNumberFilter;
use AdesinFr\LaravelQueryBuilderTableFilters\AllowedNumberRangeFilter;
use App\Models\User;
use Spatie\QueryBuilder\QueryBuilder;

$users = QueryBuilder::for(User::query())
    ->allowedFilters([
        'name',
        AllowedDateFilter::make('created_at'),
        AllowedNumberFilter::make('score'),
        AllowedNumberRangeFilter::make('age'),
    ])
    ->allowedSorts(['name', 'created_at'])
    ->paginate(request('perPage', 15));

Prefixed Multi-Table Parameters

For one endpoint serving several tables, temporarily apply Spatie parameter names:

use AdesinFr\LaravelQueryBuilderTableFilters\QueryBuilderTable;
use Spatie\QueryBuilder\QueryBuilder;

$users = QueryBuilderTable::for('users')->withParameterNames(function () {
    return QueryBuilder::for(User::query())
        ->allowedFilters(['name'])
        ->allowedSorts(['name'])
        ->paginate(perPage: request('perPage', 15), pageName: 'usersPage')
        ->withQueryString();
});

This reads parameters like:

users_filter[name]=john&users_sort=name&usersPage=2

For the default table, standard Spatie names are used:

filter[name]=john&sort=name&page=2

Scope

This package only provides backend query helpers. It intentionally does not include:

  • Inertia macros.
  • Table UI configuration builders.
  • CSV export.
  • Pagination or resource wrappers.