Laravel-datatables: рдЕрдирдзрд┐рдХреГрдд 401

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рд╕рд┐рддре░ 2015  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yajra/laravel-datatables

рдореИрдВрдиреЗ рдЖрдЬ 5.11.7 рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЬрдм рдореИрдВ рдЙрд╕ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдШрдЯрдХ рд╣реИ, рддреЛ рдореБрдЭреЗ AJAX рд╕реЗ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдирдзрд┐рдХреГрдд рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИред
рдореЗрд░рд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рд╣реИ

    public function anyData()
    {
      $Patient = Patient::select('*')->withTrashed();
      return \Datatables::of($Patient)->make(true);
    }

рдФрд░ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдШреЛрд╖рдгрд╛ рд╣реИ

$(document).ready(function() {
    $('#dataTables-patients').DataTable({
      responsive: true,
      processing: true,
      serverSide: true,
      ajax: base_url+'/patient/data',
      language:{
        url:base_url+'/js/dataTables.Spanish.json'
      },
      columns:[
        {data:'dni', name:'dni'},
        {data:'first_name', name:'first_name'},
        {data:'last_name', name:'last_name'},
        {data:'birthday', name:'birthday'},
        {data:'id', name:'id'},
        {data:'active', name:'active'},
      ],
      "columnDefs": [{
        "targets": 4,
        "data": "id",
        "render": function ( data, type, row ) {
          if(row.active=="0"){
            return '<a class="btn btn-primary" href="'+base_url+'/patient/show/'+data+'">'+patient.view+'</a>'+
                   '<a class="btn btn-success respatient" data-id="'+data+'" href="#" >'+patient.restore+'</a>';
          }else{
            return '<a class="btn btn-primary" href="'+base_url+'/patient/show/'+data+'">'+patient.view+'</a>'+
                   '<a class="btn btn-danger delpatient" data-id="'+data+'" href="#" >'+patient.delete+'</a>';
          }
        }

      },
      { "orderable": false, "targets": [ 4 ] },
      { "bSearchable": false, "aTargets": [ 5 ] },
      { "visible": false,  "targets": [ 5 ] }
      ]
    });

});

рдЬрдм рдЕрдирдзрд┐рдХреГрдд рд╡рд┐рд╕реНрдлреЛрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдРрдк рдкрд░ рдлрд┐рд░ рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдпрд╣ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ: рдореИрдВ рдкреГрд╖реНрда рдХреЛ 6 рдмрд╛рд░ рдкреБрдирдГ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдореИрдВ рджреЛ рдмрд╛рд░ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдирдзрд┐рдХреГрдд рд╣реЛрддрд╛ рд╣реИред

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

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛,
рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ред
рджреГрд╢реНрдп рдореЗрдВ
var token = '{{ csrf_token() }}';

ajax: { url:'$url', type:'post', data: { '_token': token } },

`рд╡рд░ рддрд╛рд▓рд┐рдХрд╛ = $ ('# myTable');

        oTable = table.dataTable({
            processing: true,
            serverSide: true,
            order: [[1, 'desc']],
            buttons: [
                { extend: 'print',  className: 'btn dark btn-outline'       },
                { extend: 'copy',   className: 'btn red btn-outline'        },
                { extend: 'pdf',    className: 'btn green btn-outline'      },
                { extend: 'excel',  className: 'btn yellow btn-outline'     },
                { extend: 'csv',    className: 'btn purple btn-outline'     },
                { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}
            ],
            ajax: {
                url:'$url',
                type:'post',
                data: {
                    '_token': token
                }
            },
            $col,
            \"oLanguage\": {
                \"sEmptyTable\":   \"No se encontraron resultados\",
                \"sInfo\":         \"Mostrando _START_ a _END_ de _TOTAL_ filas\",
                \"sInfoEmpty\":    \"No se encontraron resultados\",
                \"sInfoFiltered\": \"(Filtrado de _MAX_ total de filas)\",
                \"sLengthMenu\":   \"Ver _MENU_ filas\",
                \"sSearch\":       \"Buscar:\",
                \"sZeroRecords\":  \"No se encontraron resultados\"
            },
            \"aoColumnDefs\": [
                { \"bSortable\": false, \"aTargets\": [ 0,-1 ] }

,
{ \"iDataSort\": 1, \"aTargets\": [ 0 ] },

                { \"sWidth\": \"20px\",   \"aTargets\": [ 0,-1 ]  },


            ]
        });


        table.on(\"keyup\", \"input[type=search]\", function () {
            /* Filter on the column (the index) of this element */
            oTable.fnFilter(this.value, $(\"thead input\").index(this));
        });

        $('#sample_1_tools > li > a.tool-action').on('click', function() {
            var action = $(this).attr('data-action');
            //console.log(action);
            oTable.DataTable().button(action).trigger();
        });

`

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

@ mantrax314 , рдпрд╣ рдПрдХ рднреВрдд рдХреА рдмрдЧ рд╣реИ рдЬрд┐рд╕реЗ рдбреАрдмрдЧ рдХрд░рдирд╛ рд╡рд╛рдХрдИ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреА рд╕реВрдЪрдирд╛ рджреА рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдХреБрдЫ рднреА рдирд╣реАрдВ рдвреВрдВрдв рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА рдпрджрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдкреАрдЖрд░ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрддреЗ,
рдореБрдЭреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ рдФрд░ рдШрдВрдЯреЛрдВ рддрдХ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ AJAX рдХреЛ GET . рдХреЗ рдмрдЬрд╛рдп POST рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ
рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рд▓реЙрдЧрд┐рди рдкреЗрдЬ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗ рдмрд┐рдирд╛ рдЕрдкрдиреЗ рдкреЗрдЬ рдХреЛ 50 рдмрд╛рд░ рд░реАрдлреНрд░реЗрд╢ рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛

рд╕рдорд╛рдзрд╛рди рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ
https://github.com/yajra/laravel-datatables/issues/19

@Xyten рдХреЗ рд╕рд╛рде рд╣реА рдореИрдВрдиреЗ POST рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ POST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реАрдПрд╕рдЖрд░рдПрдл рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ .. рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡? рдзрдиреНрдпрд╡рд╛рдж рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВред

@mrofi , рдЯреЛрдХрди рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред http://laravel.com/docs/5.1/routing#csrf -x-csrf-token

рдореИрдВрдиреЗ рдЕрднреА рдЪрдореНрдкрд░ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдкрд░ https://github.com/Chumper/Datatable/issues/170 рдЕрдВрдХ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

mgsmus рдиреЗ 16 рд╕рд┐рддрдВрдмрд░ 2014 рдХреЛ рдЯрд┐рдкреНрдкрдгреА рдХреА
рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ рд╣реИред рдореИрдВ "рдХрд╛рд░реАрдЧрд░ рд╕реЗрд╡рд╛" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ PHP рдХреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЕрдкрд╛рдЪреЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рд╣реИ рдЬреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд░реНрд╡рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ "рдХрд╛рд░реАрдЧрд░ рд╕реЗрд╡рд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдореИрдВ "рдХрд╛рд░реАрдЧрд░ рд╕реЗрд╡рд╛" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдЪреНрдЫреА рддрд░рд╣ рдзреНрдпрд╛рди рджреЗрдВред рдмрд┐рд▓реНрдЯ рдЗрди рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрд╛рдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж, @рдпрдЬрд░рд╛ ред рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рд╕реЗ рд╕реАрдПрд╕рдЖрд░рдПрдл рдЯреЛрдХрди рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреАред рдореИрдВ Laravel рд╕реЗ рдЙрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ред рдореИрдВ рдПрдЪрдЯреАрдПрдордПрд▓ рдмрд┐рд▓реНрдбрд░ рдореЗрдВ AJAX рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдХрд╣рд╛рдВ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реВрдВ?

@mrofi , рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдХрд╛рд░реАрдЧрд░ рдХреА рд╕реЗрд╡рд╛" рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдиреАрдЪреЗ рдХреА рддрд░рд╣ рдПрдХ рд╕рд░рдгреА рдкреИрд░рд╛рдореАрдЯрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

->ajax([
  'url' => 'url',
  'type' => 'post'
])

рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдкреБрд╖реНрдЯрд┐ рдХреА рдХрд┐ рд╕рдорд╕реНрдпрд╛ "рдХрд╛рд░реАрдЧрд░ рдХреА рд╕реЗрд╡рд╛" рдХреЗ рдХрд╛рд░рдг рдереАред Apache/nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧреАред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдореЗрдЬрдмрд╛рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рдлреЗрдбреЛрд░рд╛ рдорд╢реАрди рдкрд░ рдЕрдкрд╛рдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рдореИрдВрдиреЗ рдЗрд╕ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рд▓ рдХрд┐рдпрд╛
рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ: рдЕрдЬрд╛рдХреНрд╕: 'рд╕рдВрд╕рд╛рдзрди',

рджреНрд╡рд╛рд░рд╛:
рдЕрдЬрд╛рдХреНрд╕: {
рдпреВрдЖрд░рдПрд▓: 'рд╕рдВрд╕рд╛рдзрди',
рд╢реАрд░реНрд╖рд▓реЗрдЦ: {'рдПрдХреНрд╕-рд╕реАрдПрд╕рдЖрд░рдПрдл-рдЯреЛрдХрди': рдЯреЛрдХрди},
рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░: 'JSON',
рдкрд╣рд▓реЗ рднреЗрдЬреЗрдВ: рдлрд╝рдВрдХреНрд╢рди (xhr) {
xhr.setRequestHeader ('рдкреНрд░рд╛рдзрд┐рдХрд░рдг');
}
},

рдХреБрдЫ рд╕реБрдЭрд╛рд╡
1) рдЕрдЬрд╛рдХреНрд╕ рд╢рд╛рдпрдж рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдорд╛рд░реНрдЧ рдХреЛ рдХрд┐рд╕реА рдореЗрдВ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ
```
рд░реВрдЯ :: рдХреЛрдИ рднреА ('рдХреИрдВрдкреЛрд╕/рдбреЗрдЯрд╛', ' рдХреИрдВрдкреЛрд╕рдХрдВрдЯреНрд░реЛрд▓рд░ @ рдбреЗрдЯрд╛') -> рдирд╛рдо ('рдХреИрдВрдкреЛрд╕.рдбреЗрдЯрд╛');

2) Dont forget add the token before the ajax calling (in my case is Laravel)

$.ajaxрд╕реЗрдЯрдЕрдк({
рд╢реАрд░реНрд╖рд▓реЗрдЦ: {
'рдПрдХреНрд╕-рд╕реАрдПрд╕рдЖрд░рдПрдл-рдЯреЛрдХрди': '{{csrf_token()}}'
}
});

3) I have that issue in using php artisan on Windows. If you use on Linux or Apache you wont have errors. 
4) Error 401 is becouse the session was expired. You need a login again. You could handler the error and take some action

"AJAX": "/ рд╕рдВрд╕рд╛рдзрди",
"рддреНрд░реБрдЯрд┐": рдлрд╝рдВрдХреНрд╢рди (рдХрд╛рд░рдг) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ("рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛!");
// рддреНрд░реБрдЯрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдХрд╛рд░рдг
// рдФрд░ рдлрд┐рд░ рдЙрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░реЗрдВ
}
```

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛,
рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ред
рджреГрд╢реНрдп рдореЗрдВ
var token = '{{ csrf_token() }}';

ajax: { url:'$url', type:'post', data: { '_token': token } },

`рд╡рд░ рддрд╛рд▓рд┐рдХрд╛ = $ ('# myTable');

        oTable = table.dataTable({
            processing: true,
            serverSide: true,
            order: [[1, 'desc']],
            buttons: [
                { extend: 'print',  className: 'btn dark btn-outline'       },
                { extend: 'copy',   className: 'btn red btn-outline'        },
                { extend: 'pdf',    className: 'btn green btn-outline'      },
                { extend: 'excel',  className: 'btn yellow btn-outline'     },
                { extend: 'csv',    className: 'btn purple btn-outline'     },
                { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}
            ],
            ajax: {
                url:'$url',
                type:'post',
                data: {
                    '_token': token
                }
            },
            $col,
            \"oLanguage\": {
                \"sEmptyTable\":   \"No se encontraron resultados\",
                \"sInfo\":         \"Mostrando _START_ a _END_ de _TOTAL_ filas\",
                \"sInfoEmpty\":    \"No se encontraron resultados\",
                \"sInfoFiltered\": \"(Filtrado de _MAX_ total de filas)\",
                \"sLengthMenu\":   \"Ver _MENU_ filas\",
                \"sSearch\":       \"Buscar:\",
                \"sZeroRecords\":  \"No se encontraron resultados\"
            },
            \"aoColumnDefs\": [
                { \"bSortable\": false, \"aTargets\": [ 0,-1 ] }

,
{ \"iDataSort\": 1, \"aTargets\": [ 0 ] },

                { \"sWidth\": \"20px\",   \"aTargets\": [ 0,-1 ]  },


            ]
        });


        table.on(\"keyup\", \"input[type=search]\", function () {
            /* Filter on the column (the index) of this element */
            oTable.fnFilter(this.value, $(\"thead input\").index(this));
        });

        $('#sample_1_tools > li > a.tool-action').on('click', function() {
            var action = $(this).attr('data-action');
            //console.log(action);
            oTable.DataTable().button(action).trigger();
        });

`

@ jarm-mcs рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)

рдирдорд╕реНрддреЗ, рдореБрдЭреЗ рднреА рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ Ajax рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ axios рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ред рдореИрдВ рд▓рд╛рд░рд╡реЗрд▓ рдкрд╛рд╕рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдХреНрд╕рд┐рдпреЛрд╕ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдореЗрд░рд╛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк.рдЬреЗрдПрд╕

window.axios = require('axios');

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

/**
 * Next we will register the CSRF Token as a common header with Axios so that
 * all outgoing HTTP requests automatically have it attached. This is just
 * a simple convenience so we don't have to attach every token manually.
 */

let token = document.head.querySelector('meta[name="csrf-token"]');

if (token) {
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
    console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

рдореЗрд░реА рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

$(function() {
            $('#users-table').DataTable({
                processing: true,
                serverSide: true,
                ajax: {
                    'url':'{!! route('api.games.index') !!}',
                    'headers':window.axios.defaults.headers.common
                },
                columns: [
                    { data: 'id', name: 'id' },
                    { data: 'name', name: 'name' },
                    { data: 'created_at', name: 'created_at' },
                    { data: 'updated_at', name: 'updated_at' }
                ]
            });
        });

рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛,
рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╣рд▓ рдХрд┐рдпрд╛ред
рджреГрд╢реНрдп рдореЗрдВ
var token = '{{ csrf_token() }}';

ajax: { url:'$url', type:'post', data: { '_token': token } },

`рд╡рд░ рддрд╛рд▓рд┐рдХрд╛ = $ ('# myTable');

        oTable = table.dataTable({
            processing: true,
            serverSide: true,
            order: [[1, 'desc']],
            buttons: [
              { extend: 'print',  className: 'btn dark btn-outline'       },
              { extend: 'copy',   className: 'btn red btn-outline'        },
              { extend: 'pdf',    className: 'btn green btn-outline'      },
              { extend: 'excel',  className: 'btn yellow btn-outline'     },
              { extend: 'csv',    className: 'btn purple btn-outline'     },
              { extend: 'colvis', className: 'btn dark btn-outline', text: 'Columns'}
          ],
            ajax: {
                url:'$url',
                type:'post',
                data: {
                    '_token': token
                }
            },
            $col,
            \"oLanguage\": {
              \"sEmptyTable\":   \"No se encontraron resultados\",
              \"sInfo\":         \"Mostrando _START_ a _END_ de _TOTAL_ filas\",
              \"sInfoEmpty\":    \"No se encontraron resultados\",
              \"sInfoFiltered\": \"(Filtrado de _MAX_ total de filas)\",
              \"sLengthMenu\":   \"Ver _MENU_ filas\",
              \"sSearch\":       \"Buscar:\",
              \"sZeroRecords\":  \"No se encontraron resultados\"
          },
          \"aoColumnDefs\": [
              { \"bSortable\": false, \"aTargets\": [ 0,-1 ] }

,
{ "iDataSort": 1, "aTargets": [ 0 ] },

              { \"sWidth\": \"20px\",   \"aTargets\": [ 0,-1 ]  },


            ]
        });


        table.on(\"keyup\", \"input[type=search]\", function () {
          /* Filter on the column (the index) of this element */
          oTable.fnFilter(this.value, $(\"thead input\").index(this));
      });

        $('#sample_1_tools > li > a.tool-action').on('click', function() {
            var action = $(this).attr('data-action');
            //console.log(action);
            oTable.DataTable().button(action).trigger();
        });

`

рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП thxред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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