Today I want to offer you an overview of a package made for DataTables.net integration into Laravel: laravel-datatables. This package allows you to easily create server-side processed DataTables with most of its available functionality while only writing a few lines of code.
Laravel-datatables installation
1. composer.json
"yajra/laravel-datatables-oracle": "~6.0"
2. config/app.php
Yajra\Datatables\DatatablesServiceProvider::class,
Facade should be automatically registered.
3. publishing configuration
$ php artisan vendor:publish --tag=datatables
Some simple magic
As an example I'm going to use our default Users.
Let's take a simple view with a table:
<!DOCTYPE html>
<head>
<link href="//cdn.datatables.net/1.10.10/css/jquery.dataTables.min.css" rel="stylesheet">
</head>
<body>
<table class="datatable">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Created at</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script src="//cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready(function(){
$('.datatable').DataTable({
processing: true,
serverSide: true,
ajax: '{{ route('users.serverSide') }}'
});
});
</script>
</body>
And here is our logic to get the main table up and running: (*this code was written directly into routes.php and it is no different than controller code)
<?php
use Yajra\Datatables\Datatables;
Route::get('/', function () {
return view('welcome');
});
Route::get('/users/serverSide', [
'as' => 'users.serverSide',
'uses' => function () {
$users = App\User::select(['id', 'name', 'email', 'created_at']);
return Datatables::of($users)->make();
}
]);
After entering into the page we should see a fully working datatable.
This package works great with Eloquent and even Query Builder or Collections. Both of them have a different availability of functions but the main ones are:
As you can see, this package has a lot to offer and I couldn't write everything down here (please visit their official site below). Of course, it can't fit all of our needs but this is a really great package which is a must when working with datatables.
Keep in mind that there are some requirements involved in this package:
- PHP 5.5.9 or later.
- Laravel 5.0 or later.
As always, don't forget to read the official documentation.
No comments or questions yet...