$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方法时,你将获取IlluminatePaginationLengthAwarePaginator,而调用方法simplePaginate时,将会获取IlluminatePaginationPaginator实例。这些对象提供相关方法描述这些结果集,除了这些帮助函数外,分页器实例本身就是迭代器,可以像数组一样对其进行循环调用。
所以,获取到结果后,可以按如下方式使用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