我必须对某些特定数据进行报告,其中用户将给出两个日期范围。所以我必须显示这个范围内的数据。如何为该用户输入日期运行查询?
这是我的控制器:
public function reportByDate(Request $request){
$now = $request->Input(['sdate']);
$then=$request->Input(['edate']);
$input = DB::select('SELECT sum(fee), courses.name FROM `fees` JOIN
courses on fees.course_id=courses.id join
users on courses.id =users.course_id
where users.completed_status=1 AND users.date between 'now' AND 'then' group by fees.course_id');
return view('revenueDetails','input'=>$input]);
}
如何在sQL查询中传递这两个输入数据?
试试这个:
$input = DB::table('fees')->join('courses', 'fees.course_id', '=','courses.id')
->join('users', 'users.course_id', '=', 'courses.id')
->where('users.completed_status', 1)
->whereBetween('users.date', [$now, $then])
->groupBy('fees.course_id')
->selectRaw('SUM(fee), courses.name')
->get();
使用DB::raw和params
$input = DB::select(DB::raw('SELECT sum(fee), courses.name FROM `fees` JOIN
courses on fees.course_id=courses.id join
users on courses.id =users.course_id
where users.completed_status=1 AND users.date between
:now AND :then group by fees.course_id',
["now" => $now, "then" => $then]));