簡體   English   中英

laravel:如何在SQL中運行查詢以供用戶輸入?

[英]laravel : How to run query for user input in sql?

我必須對某些數據進行報告,用戶將給出兩個日期范圍。 因此我必須顯示該范圍內的數據。 如何查詢該用戶輸入日期?

這是我的控制器:

 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查詢中傳遞)?

將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]));

嘗試這個:

$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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM