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);
}
Skript
<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>
Sie sollten start
als Feldnamen für Ihre Anfrage verwenden, da dieser von dataTables beim Blättern der Ergebnisse verwendet wird.
Ja, ich habe das geändert und es funktioniert und auch mein Problem mit dem Datumsformat der if-Anweisung, das ich geändert habe und es funktioniert
@yajra Du