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 :
- Laravel 5.3 Ajax CRUD Application
- Laravel 5.3 Vue.Js CRUD Application
- Laravel 5.3 CRUD with Resource Controller
- 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 PackageInstall 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