A simple package to ease datatable.js server side operations
This package is created to handle server-side and client-side works of DataTables jQuery Plugin via AJAX option by using Eloquent ORM, Query Builder or Collection.
Version 2.0 continues the improvements in version 1.0.3 by introducing some new functions , improved code structure and various bug fixes.
Introduced three new functions for the case if you know query is instance of which class. Currently supported include: Eloquent Query Builder, Database Query Builder and Eloquent Collection
echo datatable()->eloquent(User::query())->init();
echo datatable()->collection(User::query())->init();
echo datatable()->queryBuilder(User::query())->init();
Modified make and datatable function . Second parameter here is boolean with default to false indicate whether you want json response or not. If you don't pass second parameter then you need to use init() function as we are using in previous version.
echo datatable()->make(User::query(),true);
echo datatable(User::query(),true);
echo datatable()->of(User::query())->init();
echo datatable()->of(DB::table('users')->join1()->join2()->select(column1,column2,...columnK))->init();
echo datatable()->of(DB::table('users'))->init();
echo datatable()->of(User::all())->init();
echo datatables(User::query());
echo datatables(DB::table('users')->join1()->join2()->select(column1,column2,...columnK));
echo datatables(DB::table('users'));
echo datatables(User::all());
use Datatable;
echo Datatable::of(User::query())->init();
echo Datatable::of(DB::table('users')->join1()->join2()->select(column1,column2,...columnK))->init();
echo Datatable::of(DB::table('users'))->init();
echo Datatable::of(User::all())->init();
echo Datatable::make(User::query());
echo Datatable::make(DB::table('users')->join1()->join2()->select(column1,column2,...columnK));
echo Datatable::make(DB::table('users'));
echo Datatable::make(User::all());
use Datatable;
echo Datatable::of(User::query())->add(columnName,function($user){
return "<a href='' id='$user->id'>$user->name</a>";
})->init();
echo datatable()->of(User::query())->add(columnName,function($user){
return "<a href='' id='$user->id'>$user->name</a>";
})->init();
use Datatable;
echo Datatable::of(User::query())->addColumns([columnName1=>function($user){
return "<a href='' id='$user->id'>$user->name</a>";
},columnName2=>function($user){
return "<a href='' id='$user->id'>$user->name</a>";
}...])->init();
use Datatable;
echo Datatable::of(User::query())->remove(columnName)->init();
use Datatable;
echo Datatable::of(User::query())->remove([columnName1,columnName2,...])->init();
- PHP >= 7.0
- Laravel 7.x
- jQuery DataTables v1.10.x
- You can check previous release for different version of laravel
$ composer require iyogesharma/datatable-laravel:"~1.0"
Register provider and facade on your config/app.php
file.
'providers' => [
...,
YS\Datatable\DatatableServiceProvider::class,
]
'aliases' => [
...,
'Datatable' => YS\Datatable\Facades\Datatable::class,
"Table"=>YS\\Datatable\\Facades\\Table::class
]
before </body>
tag add
{{table()->css()}}
before </body>
tag add
{{table()->scripts()}}
before </body>
tag add
{{table()->dependencies()}}
In HTMl file inside document .ready function write
{{table()->basic()}}
In HTMl file inside document .ready function write
{{table()->ajax($url,$columns,$configs)}}
{{table()->dependencies()}}
<script>
$(document).ready(function(){
{{ table()->ajax('ddd/ddd',
[ 'name',
'email',
'office'
],[
'paging'=>'true',
'fixedheader'=>'true',
'buttons'=>['colvis','copy','csv','print'],
'order'=>[[0,'desc']],
'lengthMenu'=> [[ 10, 20, 30, 40, 50], [ 10, 20, 30, 40, 50]],
]
)}}
})
</script>
The MIT License (MIT). Please see License File for more information.