crushjs / mini-datatables
Mini Laravel DataTables
v1.0.0
2026-05-06 08:10 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
README
A lightweight Laravel DataTables package inspired by Yajra DataTables.
Features
- Simple JSON response
- Query Builder support
- Search support
- Pagination
- Sorting
- Custom columns
- Raw columns
- Laravel auto-discovery
Installation
Install package via Composer:
composer require crushjs/mini-datatables
Publish Assets
php artisan vendor:publish --tag=minidatatables-assets
Laravel Auto Discovery
The package supports Laravel auto-discovery.
No manual provider registration required.
Usage
Basic Example
use App\Models\User; use Crushjs\MiniDataTables\MiniDataTables; Route::get('/users', function () { return MiniDataTables::of( User::query() )->make(); });
Response Example
{
"data": [
{
"id": 1,
"name": "John"
},
{
"id": 2,
"name": "Jane"
}
]
}
Search
URL
/users?search=john
Example
return MiniDataTables::of( User::query() ) ->search('name', 'test') ->make();
Pagination
Example
return MiniDataTables::of( User::query() ) ->paginate(10) ->make();
Sorting
URL
/users?sort=id
Example
return MiniDataTables::of( User::query() ) ->sort() ->make();
Add Custom Column
return MiniDataTables::of( User::query() ) ->addColumn('action', function ($user) { return '<button>Edit</button>'; }) ->make();
Edit Column
return MiniDataTables::of( User::query() ) ->editColumn('name', function ($user) { return strtoupper($user->name); }) ->make();
Raw Column
return MiniDataTables::of( User::query() ) ->rawColumns(['action']) ->make();
Full Example
use App\Models\User; use Crushjs\MiniDataTables\MiniDataTables; Route::get('/users', function () { return MiniDataTables::of( User::query() ) ->search('name') ->sort() ->paginate(10) ->addColumn('action', function ($user) { return '<button>Edit</button>'; }) ->rawColumns(['action']) ->make(); });
Package Structure
mini-datatables/
├── composer.json
├── README.md
└── src/
├── MiniDataTables.php
├── MiniDataTablesServiceProvider.php
└── Facades/
└── MiniTable.php
Local Development
Clone repository:
git clone https://github.com/crushjs/mini-datatables.git
Install dependencies:
composer install
Testing Inside Laravel
Add local repository to Laravel project:
"repositories": [ { "type": "path", "url": "./packages/crushjs/mini-datatables" } ]
Then install:
composer require crushjs/mini-datatables:@dev
Requirements
- PHP 8.1+
- Laravel 10+
- Laravel 11+
- Laravel 12+
Roadmap
- Global search
- Multi-column sorting
- Export CSV
- Export Excel
- API Resources
- Vue support
- React support
License
MIT License
Author
Crushjs
GitHub: https://github.com/crushjs



