Skip to content
Icon

WARNING You're browsing the documentation for an upcoming version of Laravel DataTables. The documentation and features of this release are subject to change.

SearchPanes Extension

DataTables SearchPanes allows users to filter data by selecting values from a list of options. This documentation covers the server-side SearchPanes API.


Basic Usage

Use the searchPane() API to add search pane options on the response:

use Yajra\DataTables\Facades\DataTables;
use App\Models\User;
 
Route::get('user-data', function() {
return DataTables::eloquent(User::query())
->searchPane('status', [
'Active' => User::where('status', 'active')->count(),
'Inactive' => User::where('status', 'inactive')->count(),
])
->toJson();
});

With Custom Builder Callback

For more complex filtering logic, pass a callback that receives the query builder:

use Yajra\DataTables\Facades\DataTables;
use App\Models\User;
 
Route::get('user-data', function() {
return DataTables::eloquent(User::query())
->searchPane('role', [
'Admin' => 10,
'User' => 50,
], function ($query, $values) {
// Custom filter logic when pane value is selected
$query->whereIn('role', $values);
})
->toJson();
});

Options Format

The options can be passed as:

  • Array: Key-value pairs of label => count
  • Collection with toArray(): Any Arrayable object
  • Callable: Returns the options dynamically
// Array format
'status' => ['active' => 100, 'inactive' => 25]
 
// Callable format
'status' => fn() => Status::pluck('name', 'id')->toArray()

See Also