项目作者: iYogesharma

项目描述 :
Handle both client side and server side datatable js operations
高级语言: PHP
项目地址: git://github.com/iYogesharma/datatable-laravel.git
创建时间: 2019-04-01T10:02:41Z
项目社区:https://github.com/iYogesharma/datatable-laravel

开源协议:MIT License

下载



Latest Stable Version
Total Downloads
License

jQuery Datatables For Laravel

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.

datatable-laravel 4.x

Version 4.x continues the improvements in version 3.x by introducing some new features

New

  • Added support for select raw queries

  • Auto guess column names if no columns are provided in request

  • Auto guess column names if * is provided in column names

  • Added support for group by and havig clause

  • Example

    1. echo datatable(User::select('users.name','users.email','users.contact_no','users.role_id')
    2. ->selectRaw("
    3. Max(id) as total
    4. ")
    5. ->groupBy('users.name', 'users.email', 'users.contact_no'))->init();
    6. echo datatable(User::select('users.*'))->init();
  • Added Support For Data Filtering From Client Side
  • Added Column Wise Search Query Support Using Below Api
  • Example

    1. {
    2. "columns": [
    3. {
    4. "data": "name",
    5. "name": "name",
    6. "searchable": true,
    7. "orderable": true,
    8. "search": {
    9. "value": "",
    10. "regex": false
    11. }
    12. }
    13. ],
    14. "start": 0,
    15. "length": 10,
    16. "search": {
    17. "value": "Yoges",
    18. "regex": false
    19. },
    20. "filters": {
    21. "role_id" : [1,2],// role id in 1,2
    22. "created_at": [date1, date2], // createde at is between date1 and date2,
    23. "name": "iyogesh" // where name = iyogesh
    24. }
    25. }

Modified

Modified datatable function to support server side export to xls,csv and json

You just need to pass 2 new arguments in query-string/body export and ext

if export = true it will return download file response
for ext default value is xlsx

  1. https://datatable-url?export=true&ext=xlsx

Using Helper Function

  1. echo datatable()->of(User::query())->init();
  2. echo datatable()->of(DB::table('users')->join1()->join2()->select(column1,column2,...columnK))->init();
  3. echo datatable()->of(DB::table('users'))->init();
  4. echo datatable()->of(User::all())->init();
  5. echo datatables(User::query());
  6. echo datatables(DB::table('users')->join1()->join2()->select(column1,column2,...columnK));
  7. echo datatables(DB::table('users'));
  8. echo datatables(User::all());

Using Facade

  1. use Datatable;
  2. echo Datatable::of(User::query())->init();
  3. echo Datatable::of(DB::table('users')->join1()->join2()->select(column1,column2,...columnK))->init();
  4. echo Datatable::of(DB::table('users'))->init();
  5. echo Datatable::of(User::all())->init();
  6. echo Datatable::make(User::query());
  7. echo Datatable::make(DB::table('users')->join1()->join2()->select(column1,column2,...columnK));
  8. echo Datatable::make(DB::table('users'));
  9. echo Datatable::make(User::all());

Add/Edit Column

  1. use Datatable;
  2. echo Datatable::of(User::query())->add(columnName,function($user){
  3. return "<a href='' id='$user->id'>$user->name</a>";
  4. })->init();

Using Helper Function

  1. echo datatable()->of(User::query())->add(columnName,function($user){
  2. return "<a href='' id='$user->id'>$user->name</a>";
  3. })->init();

Add/Edit Multiple Columns

  1. use Datatable;
  2. echo Datatable::of(User::query())->addColumns([columnName1=>function($user){
  3. return "<a href='' id='$user->id'>$user->name</a>";
  4. },columnName2=>function($user){
  5. return "<a href='' id='$user->id'>$user->name</a>";
  6. }...])->init();

Remove Column

  1. use Datatable;
  2. echo Datatable::of(User::query())->remove(columnName)->init();

Remove Multiple Columns

  1. use Datatable;
  2. echo Datatable::of(User::query())->remove([columnName1,columnName2,...])->init();

Requirements

Quick Installation

  1. $ composer require iyogesharma/datatable-laravel:"~1.0"

Service Provider & Facade (Optional on Laravel 5.5)

Register provider and facade on your config/app.php file.

  1. 'providers' => [
  2. ...,
  3. YS\Datatable\DatatableServiceProvider::class,
  4. ]
  5. 'aliases' => [
  6. ...,
  7. 'Datatable' => YS\Datatable\Facades\Datatable::class,
  8. "Table"=>YS\\Datatable\\Facades\\Table::class
  9. ]

load css files

before </body> tag add

  1. {{table()->css()}}

load script files

before </body> tag add

  1. {{table()->scripts()}}

load Dependencies (css/js)

before </body> tag add

  1. {{table()->dependencies()}}

Initialize Basic DataTable

In HTMl file inside document .ready function write

  1. {{table()->basic()}}

Initialize Ajax DataTable

In HTMl file inside document .ready function write

  1. {{table()->ajax($url,$columns,$configs)}}

Example

  1. {{table()->dependencies()}}
  2. <script>
  3. $(document).ready(function(){
  4. {{ table()->ajax('ddd/ddd',
  5. [ 'name',
  6. 'email',
  7. 'office'
  8. ],[
  9. 'paging'=>'true',
  10. 'fixedheader'=>'true',
  11. 'buttons'=>['colvis','copy','csv','print'],
  12. 'order'=>[[0,'desc']],
  13. 'lengthMenu'=> [[ 10, 20, 30, 40, 50], [ 10, 20, 30, 40, 50]],
  14. ]
  15. )}}
  16. })
  17. </script>

License

The MIT License (MIT). Please see License File for more information.