如何為 Laravel 搜索過濾器功能創(chuàng)建查詢語(yǔ)句?我想將 Laravel 搜索查詢合二為一?,F(xiàn)在這段代碼有問題。它不是多條件疊加。我想將此查詢統(tǒng)一為一個(gè)并獲得滿足所有條件的結(jié)果。我應(yīng)該怎么辦?//?? ?? ???public function index (Request $request){ //base Object $penpals = $this->penpalModel->getUsers(); //name search if (!empty($request->name)) { $users = $this->userModel->where('name', 'like', '%' . $request->name . '%')->get(); if (!empty($users)) { $penpals->whereIn('user_id', $users); } } //gender search if (!empty($request->gender) && $request->gender !== 'all') { $penpals->leftJoin('users', 'penpals.user_id', '=', 'users.id') ->select('penpals.*', 'users.gender') ->where('users.gender', $request->gender); } //country search if (!empty($request->country) && $request->country !== 'all') { $penpals->leftJoin('users', 'penpals.user_id', '=', 'users.id') ->select('penpals.*', 'users.country') ->where(['users.country', $request->country]); } // goal name search if (!empty($request->goal) && $request->goal !== 'all') { $penpals = $this->penpalModel->where('goal_id',$request->goal)->latest(); } //age search if($request->ageMin || $request->ageMax){ $ageMin = floor($request->ageMin); $ageMax = floor($request->ageMax); $penpals = $this->penpalModel->leftJoin('users', 'penpals.user_id', '=', 'users.id') ->select('penpals.*', 'users.age') ->whereBetween('users.age', [$ageMin, $ageMax]); } $penpalsData = $penpals->orderBy('penpals.created_at','desc')->paginate(12); $penpalsCount = count($penpalsData); return view('penpal.index')->with([ 'penpals' => $penpalsData, 'penpalsCount' => $penpalsCount ]);}
- 1 回答
- 0 關(guān)注
- 163 瀏覽
添加回答
舉報(bào)
0/150
提交
取消