我目前正在尝试通过模型使用 Laravel 控制器从数据库获取数据Maintain。有没有办法根据前端 axios post 发出的请求数据查询数据库,这包括变量 sub 和 zone,我有能够使用 sub 或 zone 但不能同时使用两者来获取数据,有没有办法构建多 where 查询 if $request包含必要的变量和标准请求,如果它们是 null 或 ""? public function all(Request $request){ $query = []; if($request->sub != ""){ array_push($query, ['subsystem', '=', $request->sub]); } if($request->zone != ""){ array_push($query, ['zone', '=', $request->zone]); } if(count($query) > 0){ return Maintain::all()->where($query); } else{ return Maintain::all(); } }当前返回错误ErrorException: array_key_exists(): The first argument should be either a string or an integer in file,但我一直在使用 Laravel 参考,但它似乎不起作用。我使用 Postman 获取 $query 的读数,它包含以下内容:[ ['sub', '=', 'Subsystem 1'], ['zone', '=', 'Zone 1']]任何帮助,将不胜感激。
1 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
尝试这样
public function all(Request $request){
$result = Maintain::when($request->zone, function ($q) use($request){
$q->where('zone', $request->zone);
})
->when($request->sub, function ($qw) use($request){
$qw->where('subsystem', $request->sub);
})
->get();
return($result);
}
when()方法看起来像 if-else
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消