Thứ Tư, 7 tháng 12, 2016

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 ....

Không có nhận xét nào:

Đăng nhận xét