2017-11-30 8 views
2

CODESlaravel DBクエリを追加することはできますか?コントローラ内の

public function getAthleteProperties(Request $request) 
{ 
    $getAthlete = DB::table('students') 
       ->join('sports', 'students.id', '=', 'sports.athlete'); 
       ->select('students.*', 'sports.*') 
       ->get(); 

    if($request->input('gender') == 1) 
    { 
     //add this line of queries to $getAthlete queries 
     ->where('gender', "m"); 
    } 
    else 
     ->where('gender', "f"); 

    if($request->input('active') == 1) 
    { 
     //add this line of queries to $getAthlete queries 
     ->where('active', "y"); 
    } 
    else 
     ->where('active', "n"); 

    return view('admin', compact('getAthlete')); 
} 

laravelにクエリを追加することが可能ですか?例えば、上記のコードのように、性別の条件が1でアクティブが1の場合、$ getAthleteの最後にクエリがこのようになります。出来ますか?どうやって?

$getAthlete = DB::table('students') 
       ->join('sports', 'students.id', '=', 'sports.athlete'); 
       ->select('students.*', 'sports.*') 
       ->where('gender', "m") //added because condition is true 
       ->where('active', "y") //added because condition is true 
       ->get(); 

答えて

5

「get」メソッドは、select文を実行するため、最初は使用する必要はありません。

public function getAthleteProperties(Request $request) 
{ 
    $getAthlete = DB::table('students') 
       ->join('sports', 'students.id', '=', 'sports.athlete'); 
       ->select('students.*', 'sports.*'); 

    if($request->input('gender') == 1) 
    { 
     //add this line of queries to $getAthlete queries 
     $getAthlete->where('gender', "m"); 
    } 
    else 
     $getAthlete->where('gender', "f"); 

    if($request->input('active') == 1) 
    { 
     //add this line of queries to $getAthlete queries 
     $getAthlete->where('active', "y"); 
    } 
    else 
     $getAthlete->where('active', "n"); 

    $getAthlete = $getAthlete->get(); 

    return view('admin', compact('getAthlete')); 
} 
+0

私の意見に「数値以外の値があります」というエラーが表示されました。しかし、クエリをまとめると正常に実行されます。どうして? – learnprogramming

+0

申し訳ありませんが、私はこの行を気付かなかった '$ getAthlete = $ getAthlete-> get();' '$ getAthlete-> get()' – learnprogramming

関連する問題