Laravel條件搜索一般使用where方法,如下:
查詢構造器:
$users = DB::table('users')->where('votes', '=', 100)->get();
或者ORM:
$users = User::where('votes', '=', 100)->all();
當有多個條件時,可以多次調用where方法:
$articles = Article::where('id','>','10')->where('is_auth','=','1')->where('id','=','14')->paginate(3)
所以,如果需要進行多條件搜索分頁,我們可以這麼寫:
public function index(Request $request)
{
//分類表數據
$sorts = Sortart::all();
//文章表實例化
$article = new Article;
//搜索條件判斷
$where = $article;
if($request->search_sid){
$where = $where->where('sort_id','=',$request->search_sid);
}
if($request->search_title){
$where = $where->where('title','like','%'.$request->search_title.'%');
}
//分頁搜索
$articles = $where->paginate(3);
//搜索條件保持
$articles->sid = $request->search_sid;
$articles->title = $request->search_title;
//$articles = Article::where('id','>','10')->where('is_auth','=','1')->where('id','=','14')->paginate(3);
//dd($articles);
return view('admin.articles.index',compact('articles','sorts'));
}
在頁面中,使用url保持分頁條件的方法:
{!! $articles->appends(['search_sid'=>$articles->sid, 'search_title'=>$articles->title])->render() !!}
效果如圖: