'laravel using whereBetween for count multiple table

function fetch_c(Request $request) { if($request->ajax()) { if($request->from_date != '' && $request->to_date != '') {

     $data = DB::select("SELECT (SELECT COUNT(*) FROM pos) as a, (SELECT COUNT(*) FROM customers) as b, (SELECT COUNT(*) FROM

supplires) as c") ->whereBetween('created_at', array($request->from_date, $request->to_date)); } else { $data = DB::select("SELECT (SELECT COUNT() FROM pos) as a, (SELECT COUNT() FROM customers) as b, (SELECT COUNT(*) FROM supplires) as c"); } echo json_encode($data); } }



Solution 1:[1]

 function fetch_c(Request $request)
    {
     if($request->ajax())
     {
      if($request->from_date != '' && $request->to_date != '')
      {
        
         $data = DB::select("SELECT (SELECT COUNT(*) FROM pos) as a, (SELECT COUNT(*) FROM customers) as b, (SELECT COUNT(*) FROM supplires) as c")
         ->whereBetween('created_at', array($request->from_date, $request->to_date));
        }
      else
      {
        $data = DB::select("SELECT (SELECT COUNT(*) FROM pos) as a, (SELECT COUNT(*) FROM customers) as b, (SELECT COUNT(*) FROM supplires) as c");
    }
      echo json_encode($data);
     }
    }

ajax

<script>
$(document).ready(function(){

 var date = new Date();

 $('.input-daterange').datepicker({
  todayBtn: 'linked',
  format: 'yyyy-mm-dd',
  autoclose: true
 });
 var _token = $('input[name="_token"]').val();

 fetch_data();

 function fetch_data(from_date = '', to_date = '')
 {

  $.ajax({
   url:"{{ url('fetch_c') }}",
   method:"get",
   data:{from_date:from_date, to_date:to_date},
   dataType:"json",
   success:function(data)
   {
    console.log(data);
    // $("#max_score").val(data);
   }
  })

 $('#filter').click(function(){
  var from_date = $('#from_date').val();
  var to_date = $('#to_date').val();
  if(from_date != '' &&  to_date != '')
  {
   fetch_data(from_date, to_date);
  }
  else
  {
   alert('Both Date is required');
  }
 });
});
</script>

Route

Route::get('/fetch_c', [App\Http\Controllers\HomeController::class, 'fetch_c']);

Error

GET http://localhost:8000/fetch_c?from_date=2022-03-01&to_date=2022-03-31 500 (Internal Server Error)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1