Skip to content

Additional Data Response

You can add additional server data on your response by using with api.

Adding response using key and value

use DataTables;
 
Route::get('user-data', function() {
$model = App\User::query();
 
return DataTables::eloquent($model)
->with('posts', 100)
->with('comments', 20)
->toJson();
});

Adding response using array

use DataTables;
 
Route::get('user-data', function() {
$model = App\User::query();
 
return DataTables::eloquent($model)
->with([
'posts' => 100,
'comments' => 20,
])
->toJson();
});

Adding response with closure.

use DataTables;
 
Route::get('user-data', function() {
$model = App\User::query();
 
return DataTables::eloquent($model)
->with('count', function() use ($model) {
return $model->count();
})
->toJson();
});

Adding response with query callback.

This is for Query and Eloquent instance only,

use DataTables;
 
Route::get('user-data', function() {
$model = App\User::query();
 
return DataTables::eloquent($model)
->withQuery('count', function($filteredQuery) {
return $filteredQuery->count();
})
->toJson();
});

Example Response

{
"draw": 1,
"recordsTotal": 10,
"recordsFiltered": 3,
"data": [{
"id": 476,
"name": "Esmeralda Kulas",
"email": "[email protected]",
"created_at": "2016-07-31 23:26:14",
"updated_at": "2016-07-31 23:26:14",
"deleted_at": null,
"superior_id": 0
}, {
"id": 6,
"name": "Zachery Muller",
"email": "[email protected]",
"created_at": "2016-07-31 23:25:43",
"updated_at": "2016-07-31 23:25:43",
"deleted_at": null,
"superior_id": 1
}],
"posts": 100,
"comments": 20
}