Laravel 5 Tutorial : How to Implement DataTables Ajax with yajra datatables

Laravel 5.3 Ajax Tutorial - How to implement DataTables Ajax with yajra datatables package in laravel 5.3, this tutorial will show you how to display, shorting, searching data from database using datatables ajax plugin in laravel 5.3

at the previews lessons, we have create simple Laravel 5.3 project, please read :
  1. Laravel 5.3 Ajax CRUD Application
  2. Laravel 5.3 Vue.Js CRUD Application
  3. Laravel 5.3 CRUD with Resource Controller
  4. Laravel 5.3 AngularJS CRUD Application

Video Tutorial Implement DataTables Ajax with yajra datatables



Full Source Code Implement DataTables Ajax with yajra datatables

First, we need to install Laravel Datatables Package

Install Laravel Datatables Package

composer require yajra/laravel-datatables-oracle

Next, Add Datatables Service Provider and Facade into config/app.php

...
Yajra\Datatables\DatatablesServiceProvider::class,
...

and

...
'Datatables' => Yajra\Datatables\Facades\Datatables::class,
...

Next, publish the configuration file.

php artisan vendor:publish

Controller (app\Http\Controllers\Auth\PostsController.php)

// use datatables
use Yajra\Datatables\Datatables;

Function Show data using DataTables

  // show datatables page
  public function datatables(){
    return view('admin/posts/datatables');
  }

  // show all posts data
  public function postsdata(){
    return Datatables::of(\App\Posts::all())->make(true);
  }

Routes (Web.php)

  // datatables route
  Route::get('admin/posts/datatables', 'Auth\PostsController@datatables');
  Route::get('admin/posts/postsdata', 'Auth\PostsController@postsdata');

Views (resources\views\admin\posts\datatables.blade.php)

@extends('layouts.dashbord')
@section('content')
  <h2 class="sub-header">Simple DataTables in laravel 5.3</h2>
  <div class="row">
    <div class="col-md-9">
      <a href="{{ url('admin/posts/new-post')}}" class="btn btn-primary btn-sm">Add New Post</a>
    </div>
<br>
  </div>
  <div class="table-responsive">
    <table class="table table-striped" id="allposts">
      <thead>
      <tr>
        <th>Id</th>
        <th>Title</th>
        <th>Description</th>
        <th>Created</th>
      </tr>
    </thead>
    <tbody>
    </tbody>
    </table>
  </div>
@stop

@push('scripts')
<script type="text/javascript">
  $(function(){
    $('#allposts').DataTable({
      processing: true,
      serverSide: true,
      ajax: '{!! URL::asset('admin/posts/postsdata') !!}',
      columns : [
        { data: 'id', name: 'id' },
        { data: 'title', name: 'title' },
        { data: 'description', name: 'description' },
        { data: 'updated_at', name: 'updated_at' }
      ]
    });
  });
</script>
@endpush

Master Blade Templates (resources\views\layouts\dashbord.blade.php)

in your master blade, add this line in the body tag

<!-- jQuery -->
<script src="//code.jquery.com/jquery.js"></script>
<!-- DataTables -->
<script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.min.js"></script>

@stack('scripts')


More Laravel Tutorial

Laravel 5.3 CRUD with VueJS


Laravel 5.3 CRUD with AJAX


Laravel 5.3 CRUD with Resource Controller



See you next lessons ....

Get Latest Source Code For FREE!

Hi guys, let me introduce myself. My name is Harison, I work at an Private Company in Indonesia 'CV.Delta Microtech' as a .Net Programmer since 2010.
Please Subscribe and Follow Our Social Medias 'Sector Code' to get Latest tutorials and will be send to your email everyday for free!, Nice to meet you and Happy coding :) all ^^

Buy me a Bear, you can send me your donations to my Wallet address on below :



Recomended