Laravel-datatables: Filter tidak berfungsi

Dibuat pada 4 Feb 2017  ·  3Komentar  ·  Sumber: yajra/laravel-datatables

  public function getincome_ajax(Request $request)
        {
            $starts = $request->start;
            $ende = $request->end;
            $course = $request->course;

                $start = date('Y-d-m', strtotime($starts));
                $end = date('Y-d-m', strtotime($ende));


            if (($starts) && ($ende) && ($course))
             {
                             //here is problem when i want search with $starts and $end its not working
                $query = Subscription::whereDate('created_at','>=',$start)
                                                ->whereDate('created_at','<=',$end)
                                                ->where('course_id',$course)
                                                ->with('courses');
            }
             elseif(($starts) && ($ende))
             {
                                  //here is problem when i want search with $starts and $end its not working
                $query = Subscription::whereDate('created_at','>=',$start)
                                                ->whereDate('created_at','<=',$end)
                                                ->with('courses');

         }

             elseif($course)
             {
                                    //here if I search with only $course its working fine
                $query = Subscription::where('course_id',$course)->with('courses');

             }

            else
            {
                         $query = Subscription::with('courses');
            }

            $dataTable = Datatables::of($query)
      ->addColumn('total', function ($s) {
                 return $s->tution_fee + $s->development_fee + $s->late_fee + $s->other_fee ;
               })
                             ->editColumn('created_at', function ($user) {
                             return $user->created_at->format('d/m/Y');
                     });
       $columns = ['created_at', 'tution_fee', 'development_fee','late_fee', 'other_fee','total','courses.name'];
      $base = new DataTableBase($query, $dataTable, $columns);
      return $base->render(null);
        }

naskah

   <script src="/vendor/datatables/buttons.server-side.js"></script>
      <script src="/js/bootstrap-datepicker.min.js"></script>

       <script type="text/javascript">
          var oTable = $('#userstable').DataTable({
            processing: true,
            serverSide: true,
            dom: 'Bfrtip',
                 buttons: [
                     'copy', 'csv', 'excel', 'pdf', 'print'
                 ],
               processing: true,
               serverSide: true,
               ajax: {
                   url: '/acadmic/income/search_ajax',
                   data: function (d) {

                       d.course = $('select[name=course]').val();
                       d.start = $('input[name=start]').val();
                       d.end = $('input[name=end]').val();

                   }
               },
               columns: [
                            { data: 'id', name: 'id' },
                             { data: 'created_at', name: 'created_at' },
                             { data: 'tution_fee', name: 'tution_fee' },
                             {data: 'development_fee', name: 'development_fee'},
                             { data: 'late_fee', name: 'late_fee' },
                             { data: 'other_fee', name: 'other_fee' },
                             {data: 'total', name: 'total', orderable: false, searchable: false},
                             { data: 'courses.name', name: 'courses.name' },
               ]
           });

           $('#search-form').on('submit', function(e) {
               oTable.draw();
               e.preventDefault();
           });
       </script>

   <script type="text/javascript">

      $(document).ready(function(){
        $('#sandbox-container .input-daterange').datepicker({
    format: "dd/mm/yyyy",
    forceParse: false,
    autoclose: true
});
      })
  </script>
question

Semua 3 komentar

Anda tidak boleh menggunakan start sebagai nama field pada permintaan Anda karena ini digunakan oleh dataTables saat menampilkan hasil.

ya saya mengubahnya dan berfungsi dan juga saya jika masalah format tanggal pernyataan saya berubah dan berfungsi

@yajra Anda menyelamatkan hari saya! Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat