Laravel-datatables: рдХреИрд╕реЗ рдПрдХ рдкреГрд╖реНрда рдЕрд▓рдЧ рдЯреИрдм рдореЗрдВ 2 datatable рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдЬреВрди 2017  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yajra/laravel-datatables

рд╕рдорд╕реНрдпрд╛ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢


рдирдорд╕реНрддреЗ, рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛред
рдореИрдВ рдХреБрдЫ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдЖрдкрдХреА рдорджрдж рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдореИрдВрдиреЗ рдкреЗрдЬ рдмрдирд╛рдпрд╛ рдЬрд┐рд╕рдореЗрдВ 2 рдЯреИрдм рдереЗ, рдЯреИрдм #one рдкреНрд░рддрд┐ рджрд┐рди рдбреЗрдЯрд╛ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдЯреИрдм #two рдкреНрд░рддрд┐ рдШрдВрдЯреЗ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЙрд╕ рджреЛ рдЯреИрдм рдореЗрдВ рдПрдХ рд╣реА рдЯреЗрдмрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдХреЗрд╡рд▓ рдЯреИрдм #one рдореЗрдВ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдЯреИрдм рдореЗрдВ #two рдХреЗрд╡рд▓ рдХреЙрд▓рдо рдХрд╛ рдирд╛рдо рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИ, рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ?

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рдерд╛ рдХрд┐ рдЧрд▓рдд рдЪреАрдЬрд╝ рдореЗрд░реЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рд╣реИ, рдпрд╣ рдХреЛрдб рд╣реИ:

public function index(InsightDataTable $dataTable)
    {
        return $dataTable->render('admin.report.insight.index');
    }

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдХрд┐ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ рдХрдИ datatable рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдзрдиреНрдпрд╡рд╛рджред
рдУрд╣ рдФрд░ рдпрд╣ рдореЗрд░реА index.blade.php рдореЗрдВ рдХреЛрдб рд╣реИ

@section('content')
    @include('admin.notification')
    <div class="row">
            <div class="col-xs-12">

                <div class="nav-tabs-custom">
                    <ul class="nav nav-tabs">
                        <li class="hari"><a href="#hari" data-toggle="tab">Hari</a></li>
                        <li class="jam"><a href="#jam" data-toggle="tab">Jam</a></li>
                    </ul>
                    <div class="tab-content">

                        <div class="hari tab-pane" id="hari">
                        <div class="row">
                <div class="btn-group pull-right" style="margin: 0 15px 15px 0;">
                    <a href="" class="btn btn-primary btn-header" id="export_file">{{ trans('label.download_excel') }}</a> 
                </div>
            </div>
                <div class="box">
                <div class="box-body">
                <table border="0" cellspacing="5" cellpadding="5">
                        <tbody>
                            <tr>
                                <td>Period:&nbsp;</td>
                                <td>
                                    <input type="text" class="form-control date-range" id="" style="width: 180px;text-align: center;">
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    <br/>
                    {!! $dataTable->table(['class' => 'datatable table table-striped', 'cellspacing'=>"0", 'width'=>"100%"]) !!}
                </div>
            </div>
                        </div>

                      <div class="jam tab-pane" id="jam">
                            <div class="row">
                <div class="btn-group pull-right" style="margin: 0 15px 15px 0;">
                    <a href="" class="btn btn-primary btn-header" id="export_file">{{ trans('label.download_excel') }}</a> 
                </div>
            </div>
                <div class="box">
                <div class="box-body">
                <table border="0" cellspacing="5" cellpadding="5">
                        <tbody>
                            <tr>
                                <td>Period:&nbsp;</td>
                                <td>
                                    <input type="text" class="form-control date-range" id="" style="width: 180px;text-align: center;">
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    <br/>
                    {!! $dataTable->table(['class' => 'datatable table table-striped', 'cellspacing'=>"0", 'width'=>"100%"]) !!}
                </div>
            </div>
                      </div>

                    </div>
                  </div>
                </div>

            </div>
<strong i="16">@endsection</strong>

@section('custom_js')
    <script> 
        dateSelection = false;
        $('.date-range').daterangepicker();
        $('.date-range').on('apply.daterangepicker', function(ev, picker) {
            $('#dataTableBuilder').on('preXhr.dt', function ( e, settings, data ) {
                data.firstDate = picker.startDate.format('YYYY-MM-DD');
                data.lastDate = picker.endDate.format('YYYY-MM-DD');
                merge_date = data.firstDate+'_'+data.lastDate;
            });       
            var table = $('#dataTableBuilder').DataTable();
           table.ajax.reload();
           dateSelection =true;                 
        });

        $("#export_file").click(function() {
            if(dateSelection == false) {
                window.location.href = "{{ url('admin/report/insight/export/all') }}";
            } else {
                window.location.href = "{{ url('admin/report/insight/export') }}/"+merge_date;
            }
            return false;
        });

    </script>
    {!! $dataTable->scripts() !!}
<strong i="17">@endsection</strong>

рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╡рд░рдг

рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрди рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ! рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЯрд┐рдХрдЯ рдХреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ / рдЯрд┐рдХрдЯреЛрдВ рдкрд░ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: Ubuntu 16.04
  • PHP рд╕рдВрд╕реНрдХрд░рдг: 7
  • рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: 5.2
  • рд▓рд╛рд░рд╡реЗрд▓-рдбрд╛рдЯрд╛рд╡реЗрдмрд▓реНрд╕ рд╕рдВрд╕реНрдХрд░рдг: 6.0

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

"рдПрдХ рд▓рд╛рдЗрди:

    public function show(PrimaryDataTable $primaryDataTable, SecondDataTable $secondDataTable)
    {
        /**  Depend request we need to match proper class */
        return ${request()->get('table', 'primary') . 'DataTable'}->render(
            'resource.show',
            compact('primaryDataTable', 'secondDataTable')
        );
    }

minified ajax рдХреЗ рд╕рд╛рде рднреА рдХреЗрдпрд░рдлреБрд▓ рд░рд╣реЗрдВ, рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж ajax рдбреЗрдЯрд╛ рдЬреЛрдбрд╝реЗрдВред

рд╕рднреА 9 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛-рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ, рдлрд┐рд░ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧред рд╕реБрд╕рдВрдЧрдд рдХреЗ рд▓рд┐рдП, рдореИрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрдЧреЗ рднреА рдХреИрд╕реЗ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП .. рдХреНрдпрд╛ рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ ?:

UsersDatatableController
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдпреЛрдЧреНрдп рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИ
рджреГрд╢реНрдп рдХреЗрд╡рд▓ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ

рдкреЛрд╕реНрдЯрдбрд┐рдЯреЗрдмрд▓рдХрдВрдЯреНрд░реЛрд▓рд░
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрджреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдпреЛрдЧреНрдп рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИ (рд╕рд╛рдорд╛рдиреНрдп рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд)
рджреГрд╢реНрдп рдХреЗрд╡рд▓ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ

UsersController
рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП UsersDatatableController рдФрд░ PostsDatatableController рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╣реА рджреГрд╢реНрдп рдореЗрдВ, рдЯреИрдм рдореЗрдВ, рдУрд╡рд░-рдЕрдВрдбрд░ рдХреЗ рддрд╣рдд рд░рдЦреЗрдВ, рдЬреЛ рднреА .. рдбреЗрдЯрд╛рдЯреИрдмрд▓реНрд╕ рдХреЗ рдЕрдЬрд╛рдХреНрд╕ рдХреЙрд▓ рдХреЛ рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рдХрд▓реНрдкрдирд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреГрд╖реНрда рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рдВрдкрд╛рджрди рдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡рд┐рдЪрд╛рд░рдгреАрдп рд╣реИред

рдЪреВрдБрдХрд┐ рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╕рд░реНрд╡рд░рд╛рдЗрдб рдбреЗрдЯрдЯреЗрдмрд▓ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрдпреЛрдЬрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
https://github.com/imanghafoori1/laravel-widgetize
рдФрд░ рдЗрд╕
https://stackoverflow.com/questions/41857905/using-laravel-controllers-as-compenders-to-build-a-view

@ рдпрдЬрд░рд╛
Lemme рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ thx

@isometriq atm, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ajax рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдорд╛рд░реНрдЧ рдХреЗ рднреАрддрд░ рджреЛ DataTable рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╢рд╛рдпрдж рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдЕрдЬрд╛рдХреНрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

public function index(UsersDatatable $udt, PostsDatatable $pdt) {
  if (request()->get('table') == 'posts') {
    return $udt->render('my.view', compact('udt', 'pdt'));
  }

  return $pdt->render('my.view', compact('udt', 'pdt'));
}

рдлрд┐рд░ рдЖрдк рдЕрдкрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рджреЛрдиреЛрдВ DT рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

{!! $udt->html()->table() !!} // users table
{!! $pdt->html()->table() !!} // posts table

{!! $udt->scripts() !!} // users table scripts
{!! $pdt->scripts() !!} // posts table scripts

рдмрд╕ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдзрдиреНрдпрд╡рд╛рдж @yajra рдореИрдВ рдХреБрдЫ рдмрд╛рддреЗрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдБ

рдЗрд╕ рд╕рд╡рд╛рд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рдЬреИрд╕рд╛ рдХрд┐ @yajra рдиреЗ рд╕реБрдЭрд╛рдпрд╛ рдерд╛ред рдЬреЛ рд▓реЛрдЧ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдкрдж рдкрд░ рдЙрддрд░реЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рд╡реНрдпреВ рдлрд╛рдЗрд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

{!! $udt->html()->table(['id' => 'udt']) !!} // users table
{!! $pdt->html()->table(['id' => 'pdt']) !!} // posts table

{!! $udt->html()->scripts() !!} // users table scripts
{!! $pdt->html()->scripts() !!} // posts table scripts

рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЖрдИрдбреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ js рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЛ!

рдФрд░ рдЖрдкрдХреЗ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдХреНрд▓рд╛рд╕ рдореЗрдВ, рдЖрдкрдиреЗ html () рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рдо рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛:

public function html() {

    return $this->builder()
        ->ajax(['data' => 'function(d) { d.table = "posts"; }'])
        ->parameters($this->getBuilderParameters());
}

@yajra , рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ https://datatables.yajrabox.com/services/two-datatables рдкрд░ рдирд╡реАрдирддрдо рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП @benlwong рдзрдиреНрдпрд╡рд╛рджред рдбреЗрдореЛ рд╕реЛрд░реНрд╕ рдХреЛрдб рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз

рд╣рд╛рдп рд╕рдм, рдореИрдВ рдЗрд╕ рдкреЛрд╕реНрдЯ рдкрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдФрд░ рдореИрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдореЗрд░реЗ рджреЛ datatables рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛!
рд▓реЗрдХрд┐рди .. рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬрдм рд╕рд╛рдорд╛рдиреНрдп рдкреГрд╖реНрда рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реЛред

рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЬрдм рдореИрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯреИрдм / рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реВрдВ рддреЛ 2 рдбреАрдЯреЗрдЯреЗрдмрд▓ рдХреЛ рд▓реЛрдб рдХрд░ рд╕рдХреВрдВред
рдореИрдВрдиреЗ рдЙрд╕ рдкреГрд╖реНрда рдореЗрдВ рджреЗрдЦрд╛: https://datatables.yajrabox.com/services/two-datatables

function postsDataTables() {
    if (!$.fn.dataTable.isDataTable('#postsTable')) {
        $('#postsTable').DataTable({
            dom: 'Bfrtip',
            processing: true,
            serverSide: true,
            order: [[0, 'desc']],
            buttons: [
                'csv', 'excel', 'pdf', 'print', 'reset', 'reload'
            ],
            ajax: '/services/two-datatables/posts',
            columns: [
                {data: 'id', name: 'posts.id'},
                {data: 'title', name: 'posts.title'},
                {data: 'created_by', name: 'users.name', width: '110px'},
                {data: 'created_at', name: 'posts.created_at', width: '120px'},
                {data: 'updated_at', name: 'posts.updated_at', width: '120px'},
            ],
            order: [[0, 'desc']]
        });
    }
}

рдЗрд╕рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдХреЗ рдЬреЗрдПрд╕ рдХреЛ рд▓рдкреЗрдЯрддреЗ рд╣реБрдП рдПрдХ рдЗрдл рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рд╕рд░реНрд╡рд┐рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдЖрдк рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХрд░ рд░рд╣реЗ рдереЗред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

function postsDataTables() {
    if (!$.fn.dataTable.isDataTable('#postsTable')) {

        {!! $secondDataTable->html()->scripts() !!}

    }
}

рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди "рд╕реНрдХреНрд░рд┐рдкреНрдЯ ()" рдЯреИрдЧ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

hohuuhau picture hohuuhau  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SGarridoDev picture SGarridoDev  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Abdulhmid picture Abdulhmid  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vipin733 picture vipin733  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ