如何解决可以在Laravel中将多个查询应用于模型吗?
我目前正在尝试使用Laravel控制器通过模型Maintain
从数据库中获取数据。有没有一种方法可以根据前端axios帖子发出的请求数据来查询数据库,这包括变量sub
和zone
,我可以使用{ {1}}或sub
,但不能同时使用这两种方法,如果zone
包含必要的变量,并且有标准请求,则$request
或{{1 }}?
null
当前,此命令返回错误""
,但我一直在使用Laravel参考,但它似乎无法正常工作。我使用Postman来获取 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
任何帮助将不胜感激。
解决方法
尝试这样
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
编辑:如果您遇到错误,请告诉我们:编码愉快
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。