我目前正在嘗試通過模型使用 Laravel 控制器從數(shù)據(jù)庫獲取數(shù)據(jù)Maintain。有沒有辦法根據(jù)前端 axios post 發(fā)出的請求數(shù)據(jù)查詢數(shù)據(jù)庫,這包括變量 sub 和 zone,我有能夠使用 sub 或 zone 但不能同時(shí)使用兩者來獲取數(shù)據(jù),有沒有辦法構(gòu)建多 where 查詢 if $request包含必要的變量和標(biāo)準(zhǔn)請求,如果它們是 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(); } }當(dāng)前返回錯(cuò)誤ErrorException: array_key_exists(): The first argument should be either a string or an integer in file,但我一直在使用 Laravel 參考,但它似乎不起作用。我使用 Postman 獲取 $query 的讀數(shù),它包含以下內(nèi)容:[ ['sub', '=', 'Subsystem 1'], ['zone', '=', 'Zone 1']]任何幫助,將不勝感激。
1 回答

慕工程0101907
TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
嘗試這樣
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 關(guān)注
- 157 瀏覽
添加回答
舉報(bào)
0/150
提交
取消