Datatable is an excellent pacakage for those who wants to make a normal table interactive.
The step to implement the Datatable is as follow.
You can also follow the documentation of the laravel
https://github.com/yajra/laravel-datatables
1) First of all go to your command prompt and your root folder and hit this command
composer require yajra/laravel-datatables-oracle
You can also specify the version of datatable as follow:
composer require yajra/laravel-datatables-oracle:"~9.0"
2) Then you have to go to config/app.php folder and paste the following codes
'providers' => [ Yajra\DataTables\DataTablesServiceProvider::class,] 'aliases' => [ 'DataTables' => Yajra\DataTables\Facades\DataTables::class,]
3) then go to the command prompt and publish the package by this code
Php artisan vendor:publish –tag=datatables
4) Now you are ready to go. Make a Model (say: Post) and its migration. Migrate the databse.
5) Make a controller by command prompt. You can also work on previously made controller. In the controller put this code.
public function getPosts()
{
$data = Post::all();
return Datatables::of($data)
->make(true);
}NOTE: You have to include
use App\Post ; use Datatables;
in the controller.
You should also make index() function to view the tables. In my case I have made as below:
public function index()
{
return view('backend.subject');
}6) Now make the respective routes for view
Route::get(‘/’, ‘DatatableController@index’);
Route::get('datatable/getposts', ['as'=>'datatable.getposts','uses'=>'SubjectNoteController@getPosts']);7) Now the last part to manage the view. Make a table with idname (say: myid)
<table id="myid"> <thead> <tr> <th>#</th> <th>Title</th> <th>Author</th> <th>Category</th> </tr> </thead> <tbody>
8) Now send the data by using ajax to the controller by this method below:
<script type="text/javascript">
$(document).ready(function() {
$('.myid).DataTable({
"processing": true,
"serverSide": true,
"ajax": "{{ route('datatable.getposts') }}",
"columns": [
{data: 'id', name: 'id'},
{data: 'title', name: 'title'},
{data: 'author', name: 'author'},
{data: 'category', name: 'category'}
]
});
});
</script>9) Please don’t forget to include jquery in the view page. You can use the following code
<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>