Laravel-datatables: рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

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

рдЗрд╕рд▓рд┐рдП рдореИрдВ рд▓рд╛рд░реНрд╡рд╛ 5.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдкрдиреЗ рд╡рд╛рдХреНрдкрдЯреБ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдЕрдЬрд╛рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЕрдм рдореИрдВ рдЗрд╕реЗ рдЦреЛрдЬ/рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдмрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЖрдВрддрд░рд┐рдХ рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐ 500 тАЛтАЛтАЛтАЛрдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ?

рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛрдб рд╣реИ `

public function index()
    {
        try{
            return view('admins.'.$this->kelaspath.'.index');
        }catch (Exception $e){
            return Redirect::back()->withInput()->with('errormessage',$e->getMessage());
        }
    }

    public function data_kegiatan()
    {
        $data = Kegiatan::with('tempat','sasaranhub.sasaran','prasyarat.kegiatan','total_peserta');
        $datatable = Datatables::of($data)
        ->editColumn('kota', function($data){
            return $data->tempat ? $data->tempat->kota : $data->kota;
        })
        ->editColumn('tempat', function($data){
            return $data->tempat ? $data->tempat->name : '';
        })
        ->editColumn('tanggal', function($data){
            return $data->tanggal ? with(new Date($data->tanggal))->format('d F Y') : '';
        })
        ->editColumn('tanggal2', function($data){
            return $data->tanggal2 ? with(new Date($data->tanggal2))->format('d F Y') : '';
        })
        ->editColumn('status', function($data){
            if($data->status == 1){
                $status = '<a class="btn btn-default btn-sm nopointer"><i class="fa fa-pause"></i> <span class="hidden-xs">MENUNGGU</span></a>';
            }elseif($data->status == 2){
                $status = '<a class="btn btn-warning btn-sm nopointer"><i class="fa fa-circle-o"></i> <span class="hidden-xs">PENDAFTARAN TERBUKA</span></a>';
            }elseif($data->status == 3){
                $status = '<a class="btn btn-warning btn-sm disabled"><i class="fa fa-ban"></i> <span class="hidden-xs">PENDAFTARAN TERTUTUP</span></a>';
            }elseif($data->status == 4){
                $status = '<a class="btn btn-primary btn-sm disabled"><i class="fa fa-dot-circle-o"></i> <span class="hidden-xs">BERJALAN</span></a>';
            }elseif($data->status == 5){
                $status = '<a class="btn btn-primary btn-sm nopointer"><i class="fa fa-times"></i> <span class="hidden-xs">TERLAKSANA</span></a>';
            }elseif($data->status == 6){
                $status = '<a class="btn btn-danger btn-sm nopointer"><i class="fa fa-times"></i> <span class="hidden-xs">BATAL</span></a>';
            }else{
                $status = "-";
            }
            return $status;
        })
        ->editColumn('sasaranhub', function($data){
            $sasaran = '';
            if(!empty($data->sasaranhub)){
                foreach ($data->sasaranhub as $sr) {
                    $sasaran .= '<a class="btn btn-info btn-xs nopointer marginbottom" >' . $sr->sasaran->name . '</a> ';
                }
            }
            return $sasaran;
        })
        ->editColumn('prasyarat', function($data){
            $prasyarat = '';
            if(!empty($data->prasyarat)){
                foreach ($data->prasyarat as $pr) {
                    $prasyarat .= '<a class="btn btn-info btn-xs nopointer marginbottom">' . $pr->kegiatan->kode . ' - ' . $pr->kegiatan->name . '</a> ';
                }
            }
            return $prasyarat;
        })
        ->addColumn('durasi',function($data){
            $mulai = new \Carbon\Carbon($data->tanggal);
            $startTimeStamp = strtotime($mulai->subDays(1));
            $endTimeStamp = strtotime($data->tanggal2);
            $timeDiff = abs($endTimeStamp - $startTimeStamp);
            $numberDays = $timeDiff/86400;
            $numberDays = intval($numberDays);

            return $numberDays;
        })
        ->rawColumns(['sasaranhub', 'prasyarat','status'])->make(true);


        return $datatable;   
    }

рдФрд░ рдпрд╣ рдореЗрд░рд╛ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ jQuery рд╣реИ

var table = $('#dataTables-example').DataTable({
        dom: '<"top"B>t<"bottom"p>',
        processing: true,
        serverSide: true,
        ajax: '{!! route('admins.kegiatan.data_kegiatan') !!}',
        responsive:{
            details:{
                type: 'column',
                target: -1
            }
        },
        columns: [
            { data: 'id', name: 'kegiatan.id', visible : false, searchable : false },
            { data: 'status', name: 'kegiatan.status',visible : false, searchable : false  },
            { data: 'name', name: 'kegiatan.name', className: 'warptext'},
            { data: 'kota', name: 'kegiatan.kota'},
            { data: 'tempat', name: 'kegiatan.tempat',className: 'warptext'},
            { data: 'tanggal', name: 'kegiatan.tanggal'},
            { data: 'tanggal2', name: 'kegiatan.tanggal2' },
            { data: 'durasi', name: 'durasi', render: function(data){
                return data ? data + ' hari' : '-';
            }},

            { data: 'status', name: 'kegiatan.status'},
            { data: 'sasaranhub', name: 'kegiatan.sasaranhub' },
            { data: 'prasyarat', name: 'kegiatan.prasyarat', render:function(data){
                return data ? data : '-';
            } },

            { data: 'min', name: 'kegiatan.min' },
            { data: 'max', name: 'kegiatan.maks' },
            { data: 'max', name: 'kegiatan.terdaftar'},
            { data: null, orderable: 'false', searchable: 'false', className:'control', defaultContent: ''}
        ],
        buttons: [
            {
                extend:'colvis',
                columns: ':gt(1)',
                text: '<i class="fa fa-table"></i>'
            },
            {
                extend:'colvisGroup',
                text: 'Semua',
                hide: [0,1],
                show: ':hidden'
            }
        ],
        language: {
            buttons : {},
            select:{
                rows:{
                    _: "",
                    0: "",
                    1: ""
                }
            },
            "sProcessing":   "Sedang proses...",
            "sLengthMenu":   "Tampilan _MENU_ entri",
            "sZeroRecords":  "Tidak ditemukan data yang sesuai",
            "sInfo":         "Tampilan _START_ sampai _END_ dari _TOTAL_ entri",
            "sInfoEmpty":    "Tampilan 0 hingga 0 dari 0 entri",
            "sInfoFiltered": "(disaring dari _MAX_ entri keseluruhan)",
            "sInfoPostFix":  "",
        }
    });
    $('#searchtext').keyup(function(){
        table.search($(this).val()).draw() ;
    });

рдФрд░ рдпрд╣рд╛рдБ рднреА рдореЗрд░реА рддрд╛рд▓рд┐рдХрд╛ html рд╣реИ

<div class="input-group tabletools">
    <div class="input-group-addon"><i class="fa fa-search"></i></div>
    <input type="text" id="searchtext" class="form-control" placeholder="Kata kunci pencarian...">
</div>
<table class="table table-hover" id="dataTables-example" cellspacing="0" width="100%">
    <thead class="bg-light-blue-active color-palette">
    <tr>
        <th hidden>id</th>
        <th hidden>status</th>
        <th data-priority="1">Nama </th>
        <th>Kota</th>
        <th>Tempat</th>
        <th class="sort" data-priority="4">Mulai</th>
        <th data-priority="3">Selesai</th>
        <th>Durasi</th>
        <th data-priority="2">Status</th>
        <th class="none">Sasaran</th>
        <th class="none">Prasyarat</th>
        <th class="none">Min</th>
        <th class="none">Maks</th>
        <th class="none">Terdaftar</th>
        <th></th>
    </tr>
    </thead>
</table>

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

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЙрд▓рдо рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ searchable: false рдЪрд┐рд╣реНрдирд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдЙрди рд╕реНрддрдВрднреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдХреБрдЫ рд╕рдорд╛рди SQL ERROR: column 'example.durasi' not found рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ (рдЖрдк рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд╡реЗрдм рдЯреВрд▓реНрд╕ рдореЗрдВ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)

рдУрд╣ .. рддреЛ рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рдХреИрд╕реЗ рдЬреЛрдбрд╝реЗрдВ: рдЭреВрдард╛? рдореБрдЭреЗ рдорд╛рд░реНрдХ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╣рд╛рдВ рд╣реИ? рдЦреИрд░, рдореИрдВ рдХрднреА рднреА AJAX рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдмрд╛рд░ рдореИрдВ рд╕рд┐рд░реНрдл рдбреЛрдо рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЙрд╕реА рдХреНрд╡реЗрд░реА/рд╡рд╛рдХреНрдкрдЯреБ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЦреЛрдЬрддрд╛ рд╣реИ ....

рдЖрдк рдЗрд╕реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ рдХреЙрд▓рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред

рдпрджрд┐ рдЖрдк рд╡рд╣рд╛рдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрдВрддрд┐рдо рдХреЙрд▓рдо рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рд╣реИред

{ data: null, orderable: 'false', searchable: 'false', className:'control', defaultContent: ''}

рдЖрдк рдХрд┐рд╕реА рднреА рдХреЙрд▓рдо рдореЗрдВ searchable:false (рдЖрдк рд╢рд╛рдпрдж рдСрд░реНрдбрд░рд┐рдВрдЧ рдХреЛ рднреА рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдирд╣реАрдВ рд╣реИред рдЙрди рд╕реНрддрдВрднреЛрдВ рдХреЛ filter() рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдЦреЛрдЬрдирд╛ рдЕрднреА рднреА рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрд╕ рддрд░реНрдХ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

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

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

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

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

hari-web picture hari-web  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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