![]()
WARNING You're browsing the documentation for an upcoming version of Laravel DataTables. The documentation and features of this release are subject to change.
Manual Order
You may optionally disable the default ordering function of DataTables and write your own using the order API.
Basic Usage
use Yajra\DataTables\Facades\DataTables;use App\Models\User;use Illuminate\Database\Eloquent\Builder; Route::get('user-data', function() { $model = User::query(); return DataTables::eloquent($model) ->order(function (Builder $query) { if (request()->has('name')) { $query->orderBy('name', 'asc'); } if (request()->has('email')) { $query->orderBy('email', 'desc'); } }) ->toJson();});
Advanced Ordering
Multiple Column Ordering
return DataTables::eloquent(User::query()) ->order(function (Builder $query) { // Primary sort $query->orderBy('status', 'asc'); // Secondary sort $query->orderBy('name', 'asc'); }) ->toJson();
Conditional Ordering
return DataTables::eloquent(User::query()) ->order(function (Builder $query) { $sortColumn = request('sort', 'created_at'); $sortDirection = request('direction', 'desc'); // Only order by allowed columns $allowedColumns = ['name', 'email', 'created_at']; if (in_array($sortColumn, $allowedColumns)) { $query->orderBy($sortColumn, $sortDirection); } }) ->toJson();
See Also
- Order Column - Order by specific column
- Order Columns - Multiple column ordering