$res = DtkModel::where('ID','>','1')->select("ID")->get()->paginate(20);//不成立 $res = DtkModel::where('ID','>','1')->select("ID")->get();//成立 $res = DtkModel::where('ID','>','1')->paginate(20);//成立
(where可以寫多個)
在laravel的分頁中,如果想多條件,查詢制定的一些字段,不要全部字段怎么實現呢?
其實我們也可以傳遞更多參數到paginate
方法,paginate
完整參數定義如下:
paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
其中$perPage
代表每頁顯示數目,$columns
代表查詢字段,$pageName
代表頁碼名稱,$page
代表第幾頁。
在視圖中顯示分頁結果
當你調用查詢構建器或Eloquent查詢上的paginate
或simplePaginate
方法時,你將會獲取一個分頁器實例。當調用paginate
方法時,你將獲取Illuminate\Pagination\LengthAwarePaginator
,而調用方法simplePaginate
時,將會獲取Illuminate\Pagination\Paginator
實例。這些對象提供相關方法描述這些結果集,除了這些幫助函數外,分頁器實例本身就是迭代器,可以像數組一樣對其進行循環調用。
所以,獲取到結果后,可以按如下方式使用Blade
<div class="container"> @foreach ($users as $user) {{ $user->name }} @endforeach </div> {!! $users->links() !!}
links
方法將會將結果集中的其它頁面鏈接渲染出來。每個鏈接已經包含了?page
查詢字符串變量。記住,render
方法生成的HTML兼容Bootstrap CSS 框架。
注意:我們從Blade模板調用render
方法時,確保使用{!! !!}
語法以便HTML鏈接不被過濾
參考:http://laravelacademy.org/post/1854.html
http://laravelacademy.org/post/3246.html