Laravel-datatables: El filtro no funciona

Creado en 4 feb. 2017  ·  3Comentarios  ·  Fuente: 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);
        }

texto

   <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

Todos 3 comentarios

No debe usar start como un nombre de campo en su solicitud porque lo están usando las tablas de datos al paginar los resultados.

sí, cambié eso y está funcionando y también mi problema de formato de fecha de declaración if cambié y está funcionando

@yajra ¡ Me salvas el día! ¡Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

kamrava picture kamrava  ·  3Comentarios

SGarridoDev picture SGarridoDev  ·  3Comentarios

jackrsantana picture jackrsantana  ·  3Comentarios

josiahke picture josiahke  ·  3Comentarios

sangnguyenplus picture sangnguyenplus  ·  3Comentarios