为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 中的模型可以应用多个查询吗?

Laravel 中的模型可以应用多个查询吗?

PHP
慕莱坞森 2023-12-15 15:59:58
我目前正在尝试通过模型使用 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


查看完整回答
反对 回复 2023-12-15
  • 1 回答
  • 0 关注
  • 94 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信