LaravelのControllrerで以下のようなフォームの値を受け取る事はできたのですが、入力項目が複数ある場合、empty判定して1度のDB問い合わせで結果を取得するにはどうしたらよいでしょうか?
$request->gradeは複数選択可のチェックボックス、$request->wordはテキストボックスです
php
1 $students[] = DB::table('p_students') 2 ->select( 3 'p_students.id', 4 'p_students.grade', 5 'p_students.student_name', 6 'p_students.test' 7 ) 8 ->WhereIn('p_students.grade', $request->grade) 9 ->where(function($query) use ($request) { 10 $query->Where('p_students.student_name', 'like', '%'.$request->word.'%') 11 ->orWhere('p_students.student_name_kana', 'like', '%'.$request->word.'%') 12 ->orWhere('p_students.test', 'like', '%'.$request->word.'%') 13 }) 14 ->get();
html
1 2 3<input type="checkbox" name="grade[]" value="高1" ></i> 高1 4<input type="checkbox" name="grade[]" value="高2" ></i> 高2 5<input type="checkbox" name="grade[]" value="高3" ></i> 高3 6 7<input type="text" name="word" value="">
回答1件
あなたの回答
tips
プレビュー