作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 3 个用于搜索的查询过滤器。第一个查询是选择选项查询,当我想在日期开始和日期结束查询之间进行搜索时,第二个查询是日期查询。最后一个查询是关于搜索名称等。唯一有效的查询只是最后一个。我的代码发生了什么,我认为我的代码没有任何问题
这是我使用过滤器的代码
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'));
}
我应该怎么做才能让他们三个开始工作,而不仅仅是 1 个正在工作的查询
已编辑
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'));
}
最佳答案
你有两个选择:
或使用 orWhere()
:
Model::query()->where([])->orWhere([])->get();
AND 使用第二个数组:
Model::query()->where([['column1' , '!=' , 'value1'] , ['column2' , '=' , 'value2'] , ['column3' , '<' , 'value3']])->get();
关于laravel - 如何在 laravel 中进行多重过滤查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61272561/
我是一名优秀的程序员,十分优秀!