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);
}
النصي
<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>
يجب ألا تستخدم start
كاسم حقل في طلبك لأنه يتم استخدامه بواسطة dataTables عند ترحيل النتائج.
نعم لقد غيرت ذلك وعمله وأيضًا مشكلة تنسيق تاريخ البيان إذا قمت بتغييرها وهي تعمل
yajra احفظ يومي! شكرا!