У меня есть 3 фильтра запросов, которые будут использоваться для поиска. Первый запрос - это выбранный вариант запроса, второй - запрос даты, когда я хочу выполнить поиск между датой начала и конца даты. последний запрос о поиске имени, et c. Единственный рабочий запрос, только последний. Что происходит с моим кодом, я думал, что с моим кодом проблем нет
Вот мой код, который использует фильтр
filtercontroller. php
public function viewType(Request $request, ReportViewAll $reportview){
$reportview = $reportview->newQuery();
if ($request->has('program')) {
if($request->input('program') == 'reportall'){
$reportview;
}
elseif($request->input('program') == 'reportactive'){
$reportview->where('crewprogram_isdisabled', '=',0);
}
elseif($request->input('program') == 'reporthistory'){
$reportview->where('crewprogram_isdisabled', '=',1);
}
}
if(($request->has('datestart') && $request->has('dateend'))){
$reportview->whereBetween('crewprogrammemo_placement_date',
array($request->input('datestart'), $request->input('dateend')));
}
if($request->has('search')){
$reportview->where ( 'employee_nik', 'LIKE', "%{$request->search}%" )
->orWhere ( 'employee_nama', 'LIKE', "%{$request->search}%" )
->orWhere ( 'show_focus_id', 'LIKE', "%{$request->search}%" )
->orWhere ( 'show_name', 'LIKE', "%{$request->search}%" );
}
return $reportview->get();
// return view('CrewProgram.ReportView.index', compact('reportview'));
}
Что я должен сделать, чтобы три из них начали работать, а не только один работающий запрос
Отредактировано
public function viewType(Request $request, ReportViewAll $reportviewall){
$reportviewall = $reportviewall->newQuery();
if ($request->has('program')) {
if($request->input('program') == 'reportall'){
$reportviewall;
}
elseif($request->input('program') == 'reportactive'){
$reportviewall->where('crewprogram_isdisabled', '=',0);
}
elseif($request->input('program') == 'reporthistory'){
$reportviewall->where('crewprogram_isdisabled', '=',1);
}
}
if(($request->has('datestart') && $request->has('dateend'))){
$reportviewall->whereBetween('crewprogrammemo_placement_date',
array($request->input('datestart'), $request->input('dateend')));
}
If($request->has('search')){
$reportviewall->where(function($query) use($request) {
$query->where('employee_nik', 'LIKE', "%{$request->search}%" )
->orWhere ( 'employee_nama', 'LIKE', "%{$request->search}%" )
->orWhere ( 'show_focus_id', 'LIKE', "%{$request->search}%" )
->orWhere ( 'show_name', 'LIKE', "%{$request->search}%" );
});
}
$reportviewall = $reportviewall->get();
return view('CrewProgram.ReportView.index', compact('reportviewall'));
}