我有5個過濾器,kampus,fakulti,program,semester和status。 所以每個過濾器都是和狀態一起被過濾的 這意味著狀態過濾器將是switch case的選擇,其他過濾器將是switch case中的條件。
$student = Student::select("*") 。
if($student){
$today = date("Y-m-d") 。
switch($request-> stat){
case 'Y'/span>:
if($request->kampus != "-" && $request-> fakulti ! = "-" && $request->程式 ! = "-" && $request->part != "-" ){
$rs = $student->where('kodkampus',$request->kampus
->where('kodfakulti',$request->fakulti)
->where('kodprogram',$request->program)
->where('part'/span>,$request->semester)
->where(' vaccine_date', '<=', $today)
->where('vaccine2_date', '<=', $today) 。
} else if ($request-> kampus ! = "-"/span> && $request->fakulti ! = "-" && $request->program != "-" ){
$rs = $student'kodkampus',$request-> kampus)
->where('kodprogram',$request->program)
->where('kodfakulti',$request->fakulti)
->where('vaccine_date', '<=', $today)
->where('vaccine2_date', '<=', $today) 。
} else if ($request-> kampus ! = "-" && $request->fakulti != "-"){
$rs = $student->where('kodkampus',$request->kampus
->where('kodfakulti',$request->fakulti)
->where('vaccine_date', '<=', $today)
->where('vaccine2_date', '<=', $today) 。
} else if ($request->kampus != "-"/span>){
$rs = $student->where('kodkampus',$request->kampus
->where('vaccine_date', '<=', $today)
->where('vaccine2_date', '<=', $today) 。
}
$rs = $rs-> get();
break。
case 'D1'/span>:
$rs = Student::get();
break。
}
return datatables()
->of($rs)->使(true)。
}else{
abort(404,'no record') 。
}
所以我需要過濾器可以單獨過濾,而不需要滿足所有的條件,例如,如果我想只過濾fakulti,我可以不選擇kampus和程式和學期。 我真的需要幫助,我需要它是單獨的過濾器,但在同一個查詢
請幫助我,我被困了3天,我是一個新的laravel,使用eloquent和datatable。uj5u.com熱心網友回復:
你不需要用if else來做
它是一個查詢工具。
這是一個查詢生成器,你可以在$student查詢生成器上堆疊wheres
if(!$student){
return abort(404,'no record') 。
}
$today = date("Y-m-d") 。
if ($request->stat == 'Y'/span>){
if($request->part !="-" ){
$student->where('part'/span>,$request->semester)
}
if ($request->program != "-" ){
$student->where('kodprogram',$request->program)
}
if ($request->fakulti != "-"/span>){
$student->where('kodfakulti',$request->fakulti) 。
}
if ($request->kampus != "-"/span>){
$student->where('kodkampus'/span>,$request->kampus)
->where('vaccine_date', '<=', $today)
->where('vaccine2_date', '<=', $today) 。
}
$rs = $student-> get();
} else {
$rs = Student::get();
}
return datatables()
->of($rs)->使(true)。
將開關改為另一個if else,因為你不想在$request->stat不是Y或D1的情況下,最終出現未定義的變數$rs。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324242.html
標籤:
上一篇:回傳新創建的多個記錄的模型
