【发布时间】:2021-11-13 15:46:36
【问题描述】:
我有 5 个过滤器,kampus,fakulti,program,semester 和 status 所以每个过滤器总是过滤状态 这意味着状态过滤器将是开关盒的选择,而另一个过滤器将是开关盒示例中的条件:
$student = Student::select("*");
if($student){
$today = date("Y-m-d");
switch($request->stat){
case 'Y':
if($request->kampus != "-" && $request->fakulti != "-" && $request->program != "-" && $request->part != "-" ){
$rs = $student->where('kodkampus',$request->kampus)
->where('kodfakulti',$request->fakulti)
->where('kodprogram',$request->program)
->where('part',$request->semester)
->where('vaccine_date', '<=', $today)
->where('vaccine2_date', '<=', $today);
} else if ($request->kampus != "-" && $request->fakulti != "-" && $request->program != "-" ){
$rs = $student
->where('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 != "-"){
$rs = $student->where('kodkampus',$request->kampus)
->where('vaccine_date', '<=', $today)
->where('vaccine2_date', '<=', $today);
}
$rs = $rs->get();
break;
case 'D1':
$rs = Student::get();
break;
}
return datatables()
->of($rs)->make(true);
}else{
abort(404,'no record');
}
所以我需要过滤器可以单独过滤而无需满足所有条件,例如,如果我只想过滤 fakulti,我可以不选择 kampus 和 program 和学期。我非常需要帮助,我需要它是单独的过滤器,但在同一个查询中
please2 帮我困了大约 3 天,我是 laravel 的新手,使用 eloquent 和数据表
【问题讨论】:
标签: laravel if-statement eloquent switch-statement laravel-7